三、MySQL 数据库安装集


一、CentOS—YUM

1. MySQL—卸载

# 1、查看存在的`MySQL`。
rpm -qa | grep -i mysql
rpm -qa | grep mysql

# 2、删除存在的`MySQL`。
rpm -e –-nodeps '包名'

# 3、查找存在的`MySQL目录`。
find / -name mysql

# 4、删除存在的`MySQL目录`。
rm -rf '目录'

# 5、删除存在的`MySQL配置文件`。
rm -rf '/etc/my.cnf'

2. MySQL—安装

  • MySQL 安装
  • 报错 mysqld_safe error: log-error set to ‘/var/log/mariadb/mariadb.log‘
  • 报错 mysql: error while loading shared libraries: libncurses.so.5: cannot open shared object fil
  • 报错 error while loading shared libraries: libncurses.so.5: cannot open shared object file
  • chkconfig: command not found
  • sysv-rc-conf
  • 解决apt-get install E: 无法定位软件包,则添加添加镜像源
sysv-rc-conf mysqld on
sysv-rc-conf --list

3. MySQL—启动

# 1、切换用户。
su mysql

# 2、启动。
service mysql start

# 3、查看运行状态。
systemctl status mysqld

cd /usr/app/mysql-8.0.22-el7-x86_64
/etc/init.d/mysql start
mysql -uciic -pciic

二、MySQL—Docker

  • 用docker创建MySQL无法访问的问题
  • Docker安装mysql并挂载目录到宿主机
  • Docker安装MySQL映射本地目录
  • Docker安装MySQL8.0

1. 前置准备

# 1、创建`mysql/conf配置目录`、`mysql/data数据目录`。
mkdir -p /root/mysql/conf /root/mysql/data

# 2、目录授权。
chmod -R 755 /root/mysql/

# 查看`MySQL`各个文件的位置。
cat /etc/mysql/mysql.cnf
cat /etc/mysql/my.cnf

[mysqld]
# 设置包含`运行的named守护进程`的`进程ID`的文件位置。
pid-file        = /var/run/mysqld/mysqld.pid
# 通讯协议的载体。
socket          = /var/run/mysqld/mysqld.sock
# 数据库文件所在目录。
datadir         = /var/lib/mysql
# 错误日志。
#log-error      = /var/log/mysql/error.log
# By default we only accept connections from localhost
#bind-address   = 127.0.0.1
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

2. 拉取镜像

# 1、搜索`MySQL镜像`。
docker search mysql

# 2、拉取`MySQL镜像`。
#docker pull mysql
#docker pull mysql:8.0.16

#docker pull mysql:5.7	
docker pull mysql:5.7.29

3. 创建并启动容器

  • 拷贝默认配置文件。
# 1、启动一个`MySQL测试容器`。
docker run -id \
	--name 'mysql_test' \
	-p 3307:3306 \
	-e MYSQL_ROOT_PASSWORD=['123456'] \
	'mysql:版本号' \ 
	&& docker logs -f 'mysql_test'

# 2、进入容器。
docker exec -it ['mysql_test'] /bin/bash	
exit

# 3、拷贝容器内`mysql.cnf配置文件`到宿主机。
docker cp 'mysql_test:/etc/mysql/conf.d/' '/root/mysql/conf/'
docker cp 'mysql_test:/etc/mysql/mysql.cnf' '/root/mysql/conf/' 
docker cp 'mysql_test:/etc/mysql/mysql.conf.d/' '/root/mysql/conf/' 
 
# 4、拷贝容器内`data数据目录`到宿主机。
docker cp 'mysql_test:/var/lib/mysql/' '/root/mysql/data/'

# 5、拷贝容器内`错误日志`到宿主机。
docker cp 'mysql_test:/var/log/mysql/error.log' '/root/mysql/'

# 6、删除`MySQL测试容器`。
docker rm -f 'mysql_test'

3.1 创建正式容器

# 1、切到`mysql/目录`。 
cd /root/mysql/

# 2、查看当前目录。
[root@qs mysql]# echo $PWD
/root/mysql

# 3、创建正式容器。
docker run -d \
	--name '容器名称' \
	-p 3306:3306 \
	-v $PWD/conf/conf.d/:/etc/mysql/conf.d/ \
	-v $PWD/data/mysql/:/var/lib/mysql/ \
	-e MYSQL_ROOT_PASSWORD=['123456'] \
	['镜像ID']

# 4、修改为开机自启动。
docker update --restart=always ['容器ID']
参数说明
-p 3306:3306将宿主机 3306端口,映射到容器内 3306端口
-e MYSQL_ROOT_PASSWORD=123456追加启动参数,指定 MySQL密码

4. MySQL—启动两个容器

# 1、启动`Master容器`。
docker run -d \
	--name 'master' \
	-p 3307:3306 \   
	-v '/root/mysql/master/mysql.cnf:/etc/mysql/mysql.cnf' \ 
	-v '/root/mysql/master/data/:/var/lib/mysql/' \ 
	-v '/root/mysql/master/error.log:/var/log/mysql/error.log' \ 
	-e MYSQL_ROOT_PASSWORD=['123456'] \ 
	['镜像ID']

# 2、启动`Slave容器`。
docker run -d \
	--name 'slave' \
	-p 3308:3306 \   
	-v '/root/mysql/slave/mysql.cnf:/etc/mysql/mysql.cnf' \ 
	-v '/root/mysql/slave/data/:/var/lib/mysql/' \ 
	-v '/root/mysql/slave/error.log:/var/log/mysql/error.log' \ 
	-e MYSQL_ROOT_PASSWORD=['123456'] \ 
	['镜像ID']

5. 启动 MySQL-8,并配置忽略大小写

docker run -d \
	--name 'mysql_8' 
	-p 3306:3306 \
	-e MYSQL_ROOT_PASSWORD=['123456'] \
	-v '/home/mysql/':'/var/lib/mysql' \
	['镜像ID'] \
	--lower_case_table_names=1

6. 登陆容器

# 1、进入容器。
docker exec -it ['容器ID'] /bin/bash	

# 2、登陆MySQL。
mysql -u root -p123456

# 3、退出MySQL。             
quit    

# 4、退出容器。                           
exit

# 5、查看`MySQL容器IP`。                                
docker inspect ['容器ID']
              
# 6、配置`MySQL容器IP`。

三、MySQL—常用操作

# 1、连接。
mysql -uroot -p123456

# 2、远程连接。
mysql -u root -p 123456 -h 192.168.0.1 -P 3306
mysql -h[192.168.0.11] -P[3306] -D[test] -uroot -p123456 


# 3、查看版本
SELECT VSESION();

1. 修改—默认端口

# 查看`MySQL`全局参数`默认端口`
show global variables like 'port';

# 修改`默认端口`,加`port端口`配置,修改完成后重启服务。
vim /etc/my.cnf
port=3309

2. 修改—密码

ALTER user 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';

2.1 忘记密码一

# 1、配置`my.ini文件`的`[mysqld]字段下`加入如下配置。
skip-grant-tables

# 2、重启`MySQL服务`(现在不需要密码即可登录数据库)。
service mysql restart

# 3、再次登录`MySQL`。
mysql>use mysql;
mysql>UPDATE user SET password=password('新密码') WHERE User='root';
mysql>flush privileges;

# 4、修改之后,再去掉`my.ini文件`的`skip-grant-tables参数`,重启`MySQL服务`即可。

2.2 忘记密码二

# 不使用上面的方法,而是通过非服务方式加`skip-grant-tables参数`,运行MySQL来修改密码。

# 1、停止`MySQL服务`。

# 2、打开命令行窗口,在`bin目录下`使用`mysqld-nt.exe启动`,即在命令行窗口执行。 
mysqld-nt --skip-grant-tables

# 3、然后另外打开一个命令行窗口,登录`MySQL`,此时无需输入`密码`即可进入。

# 4、按以上方法修改好密码后,关闭命令行运行的窗口,此时即`关闭了MySQL`。
# 如果发现`MySQL仍在运行`的话,可以结束掉对应进程来关闭。

# 5、启动`MySQL服务`。

3. 修改—不区分大小写

-- 查询`大小写配置`。
SHOW GLOBAL VARIABLES LIKE '%lower_case%';

-- 查询`是否区分大小写表名`。
SHOW VARIABLES LIKE 'LOWER_CASE_TABLE_NAMES';

  • lower_case_file_system=off:说明大小写是敏感的。
    注意:该变量不可以修改,只是说明当前操作系统对于 MySQL 的配置是否大小写敏感。
  • lower_case_table_names=0:是对数据表名不做转换。
    如果是1,则会将数据表转换为小写,然后在进行操作。
  1. LOWER_CASE_TABLE_NAMES=0:表名存储为给定的大小写,比较时区分大小写的。
  2. LOWER_CASE_TABLE_NAMES=1:表名存储在磁盘是小写的,比较时不区分大小写。
  3. LOWER_CASE_TABLE_NAMES=2:表名存储为给定的大小写,比较时是小写的。
    在这里插入图片描述

  • vim /etc/mysql/my.cnf
docker exec -it 'mysql_8' /bin/bash	

docker cp 'mysql_8:/etc/mysql/my.cnf' '/root/mysql/my.cnf'

docker cp '/root/mysql/my.cnf' 'mysql_8:/etc/mysql/my.cnf' 

# 修改`不区分大小写`。
# vi /etc/mysql/mysql.conf.d/mysqld.cnf
vi /etc/my.cnf

------------------------------
[mysqld]
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
datadir         = /var/lib/mysql
#log-error      = /var/log/mysql/error.log
# By default we only accept connections from localhost
#bind-address   = 127.0.0.1
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# 修改`不区分大小写`。
lower_case_table_names=1
------------------------------

# 重启MySQL。
service mysql restart

5. MySQL—导入导出

# 导出。
mysqldump -uroot -p -h192.168.100.101 -P3307 --databases sell > sell_bak.sql

# 导入(先修改`sell_bak.sql中的库名`)。
mysql -uroot -p -h192.168.100.101 -P3308 < sell_bak.sql

四、MySQL—异常

1. 3306端口已经绑定。

  • Error starting userland proxy: listen tcp 0.0.0.0:3306: bind: address already in use

# 1、查看`3306端口`占用情况。
sudo netstat -nlpt | grep 3306

# 2、停掉`MySQL服务`。
sudo service mysql stop

2. ONLY_FULL_GROUP_BY

  • ONLY_FULL_GROUP_BY

五、MySQL客户端—安装

  • MySQL 下载
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

# 查看是否有安装过MySQL。
rpm -qa | grep mysql

# 卸载旧的版本。
rpm -e --nodeps ['软件名']

# 安装`.rpm包`(`--nodeps --force`强制安装)。
# 如果下载的是`.tar文件`需要先解压,如果是`.rpm文件`则可以直接安装。
rpm -ivh ['rpm包的名字'] --nodeps --force

mysql --help
# 检测`MySQL`是否已经启动。
#service mysqld status

# 连接。
mysql -h[192.168.0.11] -P[3306] -D[test] -uroot -p123456 
  • 安装成功。在这里插入图片描述

  • error while loading shared libraries: libtinfo.so.5: cannot open shared object file
# 查找存在的`libtinfo`包。
find / -name 'libtinfo*'
# 找到存在的包。
#`/usr/lib64/libtinfo.so.6.1`

# 创建软链接。
ln -s /usr/lib64/libtinfo.so.6.1 /usr/lib64/libtinfo.so.5

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/85590.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

TCP/IP---网络层

一、网络层的主要功能 1、提供了通讯过程中&#xff0c;必须要使用的另一个地址&#xff1a;逻辑IP地址【ipv4、ipv6】 2、连接不同媒介类型【内网--外网&#xff08;intra -- inter&#xff09;】 3、根据运行的不同的路由协议&#xff0c;选择不同的最佳路径 4、在选择的最好…

【数据结构与算法】迪杰斯特拉算法

迪杰斯特拉算法 介绍 迪杰斯特拉&#xff08;Dijkstra&#xff09;算法是典型最短路径算法&#xff0c;用于计算一个节点到其他节点的最短路径。它的主要特点是以中心向外层层扩展&#xff08;广度优先搜索思想&#xff09;&#xff0c;直到扩展到终点为止。 算法过程 设置…

微信小程序 车牌号输入组件

概述 一个小组件&#xff0c;用于方便用户输入车牌号码 详细 概述 有时候我们开发过程中会遇到需要用户输入车牌号的情况&#xff0c;让客户通过自带键盘输入&#xff0c;体验不好且容易出错&#xff0c;例如车牌号是不能输入O和I的&#xff0c;因此需要有一个自定义的键盘…

2023/8/16 华为云OCR识别驾驶证、行驶证

目录 一、 注册华为云账号开通识别驾驶证、行驶证服务 二、编写配置文件 2.1、配置秘钥 2.2、 编写配置工具类 三、接口测试 3.1、测试接口 3.2、结果 四、实际工作中遇到的问题 4.1、前端传值问题 4.2、后端获取数据问题 4.3、使用openfeign调用接口报错 4.3、前端显示问题…

SQL 语句继续学习之记录二

三&#xff0c; 聚合与排序 对表进行聚合查询&#xff0c;即使用聚合函数对表中的列进行合计值或者平均值等合计操作。 通常&#xff0c;聚合函数会对null以外的对象进行合计。但是只有count 函数例外&#xff0c;使用count(*) 可以查出包含null在内的全部数据行数。 使用dis…

javeee eclipse项目导入idea中

步骤一 复制项目到idea工作空间 步骤二 在idea中导入项目 步骤三 配置classes目录 步骤四 配置lib目录 步骤五 添加tomcat依赖 步骤六 添加artifacts 步骤七 部署到tomcat

数学建模-模型详解(2)

微分模型 当谈到微分模型时&#xff0c;通常指的是使用微分方程来描述某个系统的动态行为。微分方程是描述变量之间变化率的数学方程。微分模型可以用于解决各种实际问题&#xff0c;例如物理学、工程学、生物学等领域。 微分模型可以分为两类&#xff1a;常微分方程和偏微分…

【计算机网络】日志与守护进程

文章目录 日志日志的创建logmessage 函数日志左边部分实现日志右边部分实现 完整代码log.hpp(整体实现)err.hpp (错误信息枚举&#xff09; 守护进程PGID SID TTY 的介绍shell中控制进程组的方式结论 为什么要有守护进程存在&#xff1f;守护进程的创建使用守护进程的条件守护进…

Tomcat线程池梳理

Tomcat梳理 文章目录 Tomcat梳理1.问题2.监控tomcat线程池springboot1.xspringboot2.x转为json格式打印输出 3.SpringBoot内置线程解析测试controlleryaml配置可知ThreadPoolExecutor有如下五种线程池状态。线程池监控指标并发测试并发请求数 < Tomcat最大线程数20并发请求数…

聊聊 Docker

聊聊 Docker Docker 是什么&#xff1f; 定义 Docker 是一款 开源的应用容器引擎。 简单来说&#xff0c;就是 以容器虚拟化技术为基础的软件。可以把应用程序和所依赖的包一起打包到一个可移植的镜像中&#xff0c;发布到 Linux 或者 Windows 上运行。&#xff08;代码 运…

从零开始学习YOLOv5 保姆级教程

一、前言 YOLO系列是one-stage且是基于深度学习的回归方法&#xff0c;而R-CNN、Fast-RCNN、Faster-RCNN等是two-stage且是基于深度学习的分类方法。 YOLOv5是一种单阶段目标检测算法&#xff0c;该算法在YOLOv4的基础上添加了一些新的改进思路&#xff0c;使其速度与精度都得…

使用 wxPython 和 pymupdf进行 PDF 加密

PDF 文件是一种常见的文档格式&#xff0c;但有时候我们希望对敏感信息进行保护&#xff0c;以防止未经授权的访问。在本文中&#xff0c;我们将使用 Python 和 wxPython 库创建一个简单的图形用户界面&#xff08;GUI&#xff09;应用程序&#xff0c;用于对 PDF 文件进行加密…

Lua之Lua源文件批量转换为luac字节码文件

准备的工具&#xff1a;luac.exe CSDNhttps://mp.csdn.net/mp_download/manage/download/UpDetailed Unity版: using System; using System.Collections; using System.Collections.Generic; using System.IO; using UnityEditor; using UnityEngine;public static class Bat…

前端开发中移动端开发需要注意什么? - 易智编译EaseEditing

在前端开发中&#xff0c;移动端开发具有一些独特的挑战和注意事项。以下是移动端开发时需要注意的一些重要点&#xff1a; 响应式设计&#xff1a; 移动设备的屏幕尺寸和分辨率多样&#xff0c;因此要采用响应式设计&#xff0c;确保你的网站或应用在各种设备上都能良好地呈…

基于学习交流社区的自动化测试实现

一 项目介绍 项目名称 项目展示链接&#xff1a; 学习交流社区 项目介绍 项目介绍&#xff1a; 学习交流社区是一个基于Spring的前后端分离的在线论坛系统。使用了MySQL数据库来存储相关信息&#xff0c;项目完成后使用Xshell将其部署到云服务器上。 前端页面&#xff1a; 前端…

实时云渲染的关键技术是什么

首先&#xff0c;我们需要了解实时云渲染的概念。实时云渲染是指将原本在本地电脑上进行的渲染工作转移到云端服务器上完成&#xff0c;并实时将处理结果返回给终端用户显示。这其实是一个合成词&#xff0c;由实时、云和渲染三个关键词组成。实时表示具有时效性和同步效果&…

09 数据库开发-MySQL

文章目录 1 数据库概述2 MySQL概述2.1 MySQL安装2.1.1 解压&添加环境变量2.1.2 初始化MySQL2.1.3 注册MySQL服务2.1.4 启动MySQL服务2.1.5 修改默认账户密码2.1.6 登录MySQL 2.2 卸载MySQL2.3 连接服务器上部署的数据库2.4 数据模型2.5 SQL简介2.5.1 SQL通用语法2.3.2 分类…

ES搭建集群

一、创建 elasticsearch-cluster 文件夹 创建 elasticsearch-7.8.0-cluster 文件夹&#xff0c;在内部复制三个 elasticsearch 服务。 然后每个文件目录中每个节点的 config/elasticsearch.yml 配置文件 node-1001 节点 #节点 1 的配置信息&#xff1a; #集群名称&#xff0…

用断言更好地实现替换重复出现的单词

断言是指对匹配到的文本位置有要求。也就是说&#xff0c;在有些情况下&#xff0c;我们对要匹配的文本的位置也有一定的要求。为了解决这个问题&#xff0c;正则中提供了一些结构&#xff0c;只用于匹配位置&#xff0c;而不是文本内容本身&#xff0c;这种结构就是断言。常见…

【踩坑日记】STM32 USART 串口与 FreeRTOS 冲突

文章目录 问题描述问题出现的环境问题解决过程第一步第二步第三步第四步第五步第六步第七步第八步 后续验证一些思考类似的问题后记 问题描述 笔者使用 FreeRTOS 创建了两个任务&#xff0c;使两颗 LED 以不同频率闪烁&#xff0c;但是在加入串口 USART 部分代码后&#xff0c…