# 1. 卸载
# 1.1 yum方式卸载
# 1.1.1 查看是否通过yum安装MySQL
yum list installed mysql*
1
如果显示了列表,说明系统装已经通过yum安装过MySQL。
# 1.1.2 yum卸载
根据1.1.1显示的列表内容,使用如下命令删除
yum remote a b c d...
rm -rf /var/lib/mysql
rm /etc/my.cnf
1
2
3
4
5
2
3
4
5
# 1.2 rpm方式卸载
# 1.2.1 查看是否通过rpm安装MySQL
rpm -qa | grep -i mysql
1
如果显示了列表,说明系统装已经通过rpm安装过MySQL。
# 1.2.2 yum卸载
根据1.1.1显示的列表内容,使用如下命令删除
rpm -e a
rpm -e b
rpm -e c
rpm -e ...
cd /var/lib/
rm -rf mysql/
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
# 1.3 删除余项
whereis mysql
1
# 根据上面显示进行删除
rm -rf /usr/bin/mysql
1
2
2
# 1.4 删除配置
rm -rf /usr/my.cnf
rm -rf /root/.mysql_sercret
1
2
2
# 1.5 剩余配置检查
systemctl list-unit-files | grep -i mysql
1
根据上面的结果删除对应服务。
# 2. 在线安装
# 2.1 下载源
wget http://repo.mysql.com/mysql57-community-release-el7-9.noarch.rpm
sudo rpm -ivh mysql57-community-release-el7-9.noarch.rpm
1
2
3
4
2
3
4
# 2.2 更新yum软件包
yum check-update
1
# 2.3 更新软件
yum update
1
# 2.4 安装
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
yum install mysql mysql-server
1
2
3
4
5
2
3
4
5
# 2.5 修改root密码
# 2.5.1 获取临时密码
# 临时密码只有在启动一次MySQL时才能获取
systemctl start mysqld
1
2
2
grep 'temporary password' /var/log/mysqld.log
1

# 2.5.2 使用临时密码登录
mysql -uroot -p
# 输入密码:)!NCw8efPZic
1
2
2
# 2.5.3 修改密码安全级别
set global validate_password_policy=0;
set global validate_password_length=1;
1
2
2
# 2.5.4 修改root密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
1
# 2.6 远程连接授权
开启远程连接授权使得系统存在一定的被攻击风险,生产环境不建议开放!!!
# 2.6.1 查看数据库访问权限
show databases;
use mysql;
select host,user from user;
1
2
3
4
5
2
3
4
5

从上图可以发现root用户的host是localhost,localhost 表示只能进行本地访问,不能进行远程连接。
# 2.6.2 授权
update user set host = "%" where user = "root";
1
# 2.6.3 刷新权限
flush privileges;
1
# 2.7 修改默认端口
- 查找配置文件路径
find / -name my.cnf
1
- 编辑配置文件
vi /etc/my.cnf
1
编辑/etc/my.cnf文件,在[mysqld]节点下加入port=3927内容。
- 重启服务
systemctl restart mysqld
1
- 查看端口
show global variables like 'port';
1
# 2.8 表名不区分大小写
在[mysqld]节点下,加入一行:
lower_case_table_names=1
1
# 2.9 防火墙端口开发
firewall-cmd --add-port=3927/tcp --permanent
firewall-cmd --reload
1
2
2
说明:如果是云端服务器,则需求通过控制台配置访问规则!!!(不同厂商配置方法不同)
# 2.10 客户端连接

# 2.11 修改连接数
- 查看最大连接数
SHOW VARIABLES LIKE '%connections%'
1
- 修改最大连接数
vi /etc/my.cnf
# 加入下方内容
1
2
2
- 修改最大连接数
- max_connections=5000
- 修改最大错误连接数
- max_connect_errors = 1000
# 3. Docker化安装
# 3.1 下载镜像
docker pull mysql:5.7
1
# 3.2 目录创建
mkdir -p /opt/mysql5.7/conf
chmod 777 /opt/mysql5.7/conf
mkdir -p /opt/mysql5.7/data
chmod 777 /opt/mysql5.7/data
1
2
3
4
5
6
7
2
3
4
5
6
7
# 3.3 配置文件
- 创建配置文件
vi /opt/mysql5.7/conf/my.cnf
1
- 填入内容
[client]
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4
[mysqld]
port=3306
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
# default: sql_mode= STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
# modeified:
sql_mode= STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
max_allowed_packet=10M
default-time_zone='+8:00'
lower_case_table_names=1
max_connections = 3000
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
- 授权
chmod 777 /opt/mysql5.7/conf/my.cnf
1
# 3.4 运行容器
docker run -itd --name mysql -p 3306:3306 \
--restart=always --privileged=true \
-v /opt/mysql5.7/conf:/etc/mysql/conf.d \
-v /opt/mysql5.7/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=hq@auth mysql:5.7
1
2
3
4
5
6
2
3
4
5
6
# 3.5 测试验证
mysql -h 172.18.1.178 -u root -p
1
create database if not exists demo default charset utf8 collate utf8_general_ci;
1