1. 配置 YUM 源
首先,创建一个新的 YUM 仓库配置文件来指定 MySQL 5.7 的安装源。
[root@centos7 ~]# tee /etc/yum.repos.d/mysql.repo <<EOF
[mysql]
name=mysql5.7
baseurl=https://mirrors.tuna.tsinghua.edu.cn/mysql/yum/mysql-5.7-community-el7-x86_64/
gpgcheck=0
EOF
说明:
tee
命令用于将内容写入文件并显示在终端。baseurl
指定了 MySQL 5.7 的 YUM 源地址。gpgcheck=0
表示不进行 GPG 签名验证。
2. 安装 MySQL 5.7
使用 YUM 命令安装 MySQL 5.7 服务器包。
[root@centos7 ~]# yum -y install mysql-community-server
说明:
-y
参数表示自动回答“yes”,避免安装过程中需要手动确认。mysql-community-server
是 MySQL 服务器的主包。
3. 启动并启用 MySQL 服务
安装完成后,启动 MySQL 服务并设置为开机自启动。
[root@centos7 ~]# systemctl enable --now mysqld
说明:
systemctl enable
设置服务开机自启动。--now
参数表示立即启动服务。
4. 检查 MySQL 服务状态
确保 MySQL 服务已经成功启动并监听 3306 端口。
[root@centos7 ~]# ss -ntl
说明:
ss -ntl
用于查看当前系统监听的端口。- 确认输出中是否有
*:3306
,表示 MySQL 服务正在监听 3306 端口。
5. 获取初始密码
MySQL 安装完成后会生成一个临时密码,可以通过以下命令查看:
[root@centos7 ~]# grep password /var/log/mysqld.log
说明:
- 临时密码会显示在日志中,例如:
A temporary password is generated for root@localhost: pe%b#S8ah)j-
。
6. 登录 MySQL 并修改密码
使用获取到的临时密码登录 MySQL,并修改密码。
[root@centos7 ~]# mysql -uroot -p'临时密码'
说明:
-uroot
表示以 root 用户登录。-p'临时密码'
指定临时密码。
登录后,MySQL 会要求你修改密码。注意,新密码必须符合密码策略要求。
mysql> alter user root@'localhost' identified by '新密码';
说明:
- 如果密码过于简单,MySQL 会提示错误,例如:
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
。 - 需要设置一个符合要求的复杂密码,例如:
Magedu0!
。
7. 验证密码修改
修改密码后,可以退出并重新登录以验证密码是否修改成功。
[root@centos7 ~]# mysql -uroot -p'新密码'
说明:
- 使用新密码登录,确认能够成功进入 MySQL 命令行。
8. 运行 mysql_secure_installation
脚本进行安全加固
运行 mysql_secure_installation
脚本来进一步提高 MySQL 的安全性。
[root@centos7 ~]# mysql_secure_installation
详细步骤:
-
输入当前 root 密码:
- 脚本会提示输入当前 root 用户的密码。如果刚刚安装 MySQL,直接按回车即可。
Enter current password for root (enter for none):
-
设置 root 密码:
- 如果尚未设置 root 密码,脚本会提示设置新密码。
Set root password? [Y/n] y New password: Re-enter new password:
-
删除匿名用户:
- 默认情况下,MySQL 允许匿名用户登录。建议删除这些用户以提高安全性。
Remove anonymous users? [Y/n] y
-
禁止 root 用户远程登录:
- 默认情况下,root 用户可以从任何主机登录。建议禁止 root 用户远程登录。
Disallow root login remotely? [Y/n] y
-
删除测试数据库:
- MySQL 默认包含一个名为
test
的数据库,任何人都可以访问。建议删除该数据库。
Remove test database and access to it? [Y/n] y
- MySQL 默认包含一个名为
-
重新加载权限表:
- 完成上述操作后,脚本会重新加载权限表以使更改生效。
Reload privilege tables now? [Y/n] y
说明:
- 运行
mysql_secure_installation
是 MySQL 安全加固的标准步骤,建议在生产环境中执行。
9. 验证安全加固结果
完成安全加固后,可以登录 MySQL 并查看用户和数据库状态。
[root@centos7 ~]# mysql -uroot -p'新密码'
查看当前用户:
mysql> select user,host from mysql.user;
查看数据库:
mysql> show databases;
说明:
- 确认匿名用户已被删除。
- 确认
test
数据库已被删除。 - 确认 root 用户只能从
localhost
登录。