过程
安装
1、通过以下命令,使用最新的包管理器安装MySQL(安装过程中一直yes/y即可)
sudo dnf install @mysql
2、设置MySQL自动启动
sudo systemctl enable --now mysqld
3、检查MySQL是否在运行
sudo systemctl status mysqld
结果:
(如图显示active,则表明MySQL已经安装成功且正在运行,接下来进行安全性、远程连接等配置)
安全性配置
4、运行mysql_secure_installation脚本,进行密码设置、允许远程连接等安全性设置。
sudo mysql_secure_installation
(1)第一步是进行密码设置,问是否VALIDATE PASSWORD component?输入y;密码有三个等级low=0、medium=1、strong=2,直接选择0即可;再输入两次相同的密码(这个密码是登录mysql的密码)。确认是否继续使用提供的密码?输入y ,回车即可。
(2)第二步移除匿名用户? 输入y ,回车。
(3)第三步设置为不允许root远程登陆? 我们肯定需要远程登录,所以输入n ,回车。
(4)移除test数据库? 输入y ,回车
(5)重新载入权限表? 输入y ,回车
设置root用户权限
5、从服务器登录MySQL,将root用户的host字段设为’%’,使得用户root可以从任意IP的机器上登录(若root用户的host字段为localhost,则只能本机登录)。
(1)输入以下命令,从本机登录MySQL:
mysql -uroot -p
(2)输入密码进入mysql中,结果如下图
(3)输入以下命令,选择mysql数据库:
use mysql;
(4)输入以下命令,进行host字段(主机IP)赋值:
update user set host='%' where user='root';
(5)输入以下命令,刷新系统权限
flush privileges;
(6)通过以下命令,验证是否设置成功
use mysql;
select user,host from user;
若mysql数据库的user表出现以下字段则设置成功
防火墙设置
6、输入以下命令,检查防火墙是否开启:
systemctl status firewalld
若结果如下图显示dead,则是未开启;
若结果如下图显示running,则是开启
7、处于安全性考虑,若你的防火墙是关闭的,则推荐你开启防火墙,通过以下命令开启防火墙
systemctl start firewalld
8、输入以下命令,查看防火墙允许哪些端口被访问:
firewall-cmd --list-ports
9、若无3306这个被用作数据库访问的默认端口,则通过以下命令开启系统防火墙的3306端口:
sudo firewall-cmd --add-port=3306/tcp --permanent
10、输入以下命令重启防火墙:
sudo firewall-cmd --reload
(若无意外防火墙部分设置到此就ok了,接下来就是服务器安全组设置)
安全组设置
11、进入控制台查看该服务器的安全组设置,查看入方向是否开放3306端口,若无则开启3306端口。
(至此MySQL的远程连接设置已完成)
12、输入以下命令重启MySQL服务,然后就可以愉快的在自己电脑上进行远程连接了。
sudo systemctl restart mysqld
若第一次连接速度很慢,则关闭MySQL主机查询DNS
MySQL会反向解析远程连接地址的DNS记录,如果MySQL主机无法连接外网,则DNS可能无法解析成功,导致第一次连接MySQL速度很慢,所以在配置中可以关闭该功能。通过以下命令到/etc/my.cnf文件中关闭该功能。
(1)先输入以下命令,到etc目录下
cd /etc/
(2)通过vim命令进入编辑器中修改文件配置
vim my.cnf
(3)在文件中添加以下命令
[mysqld]
skip-name-resolve
bind-address=0.0.0.0 #此配置非必须,可以防止限定IP访问MySQL服务
(4)保存退出即可
总结
CentOS服务器安装很简单,一条命令即可,但想要远程访问服务器上的MySQL,则需要配置多个地方,包括设置用户root权限、防火墙端口设置、安全组端口设置等。