环境准备
- Centos8.2
- Mysql8.0.26
-
安装Mysql
sudo dnf install @mysql
设置开机自启动
systemctl enable --now mysqld
或者 sudo systemctl enable --now mysqld
检查MySQL状态
systemctl status mysqld
或者 sudo systemctl status mysqld
运行mysql_secure_installation脚本,该脚本执行一些与安全性相关的操作并设置MySQL根密码:
mysql_secure_installation
或者 sudo mysql_secure_installation
具体步骤
命令运行后,根据命令行提示执行如下操作。
- 输入Y并回车开始相关配置。
- 选择密码验证策略强度,输入2并回车。
策略0表示低,1表示中,2表示高。建议您选择高强度的密码验证策略。
- 设置MySQL的新密码并确认。
本示例设置密码PASSword123!。
- 输入Y并回车继续使用提供的密码。
- 输入Y并回车移除匿名用户。
- 输入N并回车禁止root用户远程连接MySQL。
- 输入Y并回车删除test库以及对test库的访问权限。
- 输入Y并回车重新加载授权表。
2.配置Mysql远程登陆
①本机登陆,输入以下命令登陆到MySQL中
mysql -u root -p
提示输入密码(即前面设置的密码PASSword123!)
②依次执行以下命令,将root用户的host字段设为’%’
用户对应的主机是localhost,而不是%,所以不能连接。授权root用户可以远程登陆
use mysql;
update user set host='%' where user='root';
# 刷新权限
flush privileges;
③接着输入exit退出MySQL数据库
④查看是否开放3306端口,如果未开启3306端口,则需要手动开启
sudo firewall-cmd --add-port=3306/tcp --permanent
sudo firewall-cmd --reload
注意:MySQL会反向解析远程连接地址的dns记录,如果MySQL主机无法连接外网,则dns可能无法解析成功,导致第一次连接MySQL速度很慢,所以在配置中可以关闭该功能。
打开/etc/my.cnf文件,添加以下配置:
[mysqld]
skip-name-resolve