MySQL 是世界上最流行的开源关系型数据库管理系统。
在默认的 CentOS 8 系统源仓库里,MySQL 数据库服务器最新可用的版本是 8.0。官方表示MySQL 8要比MySQL 5.7快2倍,还带来了大量的改进和更快的性能!
本文我们将会向你展示如何在 CentOS 8 系统上安全安装 MySQL 8.0。
一、安装MySQL8.0以 root 或者其他有 sudo 权限的用户身份,通过使用 CentOS 包管理器来安装 MySQL 8.0 服务器:
sudo dnf install @mysql
@mysql模块会安装 MySQL 和所有依赖安装包。
一旦安装完成,启动 MySQL 服务并且启用开机启动功能,运行下面的命令:
sudo systemctl enable --now mysqld
检查 MySQL 服务器是否正在运行,输入:
sudo systemctl status mysqld
此时,使用mysql -u root 命令,就可以登录并连接到MySQL 服务器了,如图所示。
二、添加密码及安全设置
运行mysql_secure_installation脚本,该脚本执行一些与安全性相关的操作并设置MySQL根密码:
sudo mysql_secure_installation
步骤如下:
要求你配置VALIDATE PASSWORD component(验证密码组件): 输入y ,回车进入该配置
选择密码验证策略等级, 我这里选择0 (low),回车
输入新密码两次
确认是否继续使用提供的密码?输入y ,回车
移除匿名用户? 输入y ,回车
不允许root远程登陆? 我这里需要远程登陆,所以输入n ,回车
移除test数据库? 输入y ,回车
重新载入权限表? 输入y ,回车
三、登录MySQL
此时,就可以使用上一步设置的root账号密码登录到MySQL服务器了。
[root@centos-101 ~]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 12
Server version: 8.0.26 Source distribution
Copyright (c) 2000, 2021, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
四、配置远程登录为了能够远程登录到MySQL服务器,我们需要完成如下配置。
下图是在没有配置之前,我们通过其他主机是无法登录到MySQL服务器的。
(1)关闭MySQL 主机防火墙
简单一点,直接禁用防火墙。
systemctl disable firewalld
systemctl stop firewalld
systemctl status firewalld
也可以开启系统防火墙的3306端口,这样就不必禁用防护墙了。
sudo firewall-cmd --add-port=3306/tcp --permanent
sudo firewall-cmd --reload
(2)配置远程登录
接下来本机登录MySQL,将root用户的host字段设为'%',意为接受root所有IP地址的登录请求:
本机登录MySQL:mysql -uroot -p<上面步骤中设置的密码>
接着继续执行mysql语句,将将root用户的host字段设为'%':
use mysql;
update user set host='%' where user='root';
flush privileges;
再次通过其他主机登录MySQL 服务器,此时就可以正常连接了。
关于MySQL 字符集设置,关注小编的下一篇文章。
,