版本 | |
---|---|
Linux | CentOS Stream release 8 |
MySQL | 8.0.29 |
步骤
Step1:卸载旧版 MySQL
# 查看当前是否已安装 MySQL,如果已安装,需要卸载
# 如果 CentOS 使用最小安装,MySQL 默认是没有安装的
rpm -qa | grep -i mysql
Step2:安装 yum 源
访问 MySQL官方下载地址,获取yum源地址
Step3:下载 yum 源
# 下载 yum 源,wget 后面的地址就是上图获取的 yum 源地址
wget https://dev.mysql.com/get/mysql80-community-release-el8-4.noarch.rpm
# 安装 yum 源
yum -y localinstall mysql80-community-release-el8-4.noarch.rpm
Step4:禁用 CentOS 8 自带的 MySQL 模块
yum module disable mysql
Step5:安装 MySQL 服务
yum install -y mysql-community-server
Step6:启动 MySQL
# 启动
systemctl start mysqld
# 查看状态
systemctl status mysqld
Step7:设置开机自启
systemctl enable mysqld
systemctl daemon-reload
设置密码
Step1:获取临时密码
mysql> grep 'temporary password' /var/log/mysqld.log
Step2:登陆 MySQL
mysql> mysql -uroot -pwbyogXRA*688
Step3:修改 MySQL 新密码,需要先设置一个较为复杂的密码,否则将不符合 MySQL 密码策略
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'Mysql@1234';
Step4:降低密码策略(生产环境慎重)
# 查看系统默认密码策略
mysql> SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+--------+
| Variable_name | Value |
+--------------------------------------+--------+
| validate_password.check_user_name | ON |
| validate_password.dictionary_file | |
| validate_password.length | 8 |
| validate_password.mixed_case_count | 1 |
| validate_password.number_count | 1 |
| validate_password.policy | MEDIUM |
| validate_password.special_char_count | 1 |
+--------------------------------------+--------+
7 rows in set (0.01 sec)
策略说明如下:
策略 | 说明 |
---|---|
check_user_name | 能否将账号和密码设置为相同的值 |
dictionary_file | 检查密码的字典文件的路径名 |
length | 密码的最小长度 该值不能设置为小于以下表达式的值: number_count + special_char_count + 2 * mixed_case_count |
mixed_case_count | 至少同时拥有的小写和大写字母的数量 |
number_count | 至少拥有的数字的个数 |
policy | 密码策略,可选值及说明见下标 |
special_char_count | 至少拥有的特殊字符的个数 |
规则 | |
---|---|
0 or LOW | Length |
1 or MEDIUM | Length; numeric, lowercase/uppercase, and special characters |
2 or STRONG | Length; numeric, lowercase/uppercase, and special characters; dictionary file |
# 降低密码策略
mysql> SET GLOBAL validate_password.policy=LOW;
mysql> SET GLOBAL validate_password.check_user_name=OFF;
mysql> SET GLOBAL validate_password.length=4;
Step5:修改较容易记忆的密码
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'root' PASSWORD EXPIRE NEVER;
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
开放远程连接
mysql> USE mysql
mysql> UPDATE user SET host = '%' WHERE user ='root';
mysql> FLUSH PRIVILEGES;
开放防火墙端口
# Step1: 查看当前防火墙状态
sudo firewall-cmd --list-all
# Step2: 添加端口
sudo firewall-cmd --permanent --add-port=3306/tcp
# Step3: 重启防火墙
sudo service firewalld restart
# Step4: 查看是否生效
sudo firewall-cmd --query-port=3306/tcp