MySQL安装

# 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

# 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

# 1.3 删除余项

whereis mysql
1
# 根据上面显示进行删除
rm -rf /usr/bin/mysql
1
2

# 1.4 删除配置

rm -rf /usr/my.cnf
rm -rf /root/.mysql_sercret
1
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.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.5 修改root密码

# 2.5.1 获取临时密码

# 临时密码只有在启动一次MySQL时才能获取
systemctl start mysqld
1
2
grep 'temporary password' /var/log/mysqld.log
1

# 2.5.2 使用临时密码登录

mysql -uroot -p
# 输入密码:)!NCw8efPZic
1
2

# 2.5.3 修改密码安全级别

set global validate_password_policy=0;
set global validate_password_length=1;
1
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

从上图可以发现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.10 客户端连接

# 2.11 修改连接数

  • 查看最大连接数
SHOW VARIABLES LIKE '%connections%'
1
  • 修改最大连接数
vi /etc/my.cnf
# 加入下方内容
1
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

# 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
  • 授权
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

# 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

# 4. 源码安装