重要提示:
本教程仅为演示目的,请在实际应用中务必使用强密码并精确限制访问来源。 以下命令 默认使用
步骤 1:添加 MySQL Yum 仓库
1. 下载 MySQL Yum 仓库的 RPM 包:
注意: 临时密码是 在冒号
2. 首次登录并修改密码: MySQL 8.x 的 默认密码策略要求 首次登录后必须 立即修改密码,并且 新密码必须符合复杂性要求。
(在提示符后 粘贴您刚刚找到的 临时密码)
登录后,你 不能执行任何其他操作, 必须先修改密码。
为
此时,您已经可以用新密码正常操作了。 3.调整密码策略:
4. 创建并授权远程访问用户:
本教程仅为演示目的,请在实际应用中务必使用强密码并精确限制访问来源。 以下命令 默认使用
root
用户执行,如果使用
普通用户,请在
命令前加上
sudo
。
步骤 1:添加 MySQL Yum 仓库
1. 下载 MySQL Yum 仓库的 RPM 包:
wget https://dev.mysql.com/get/mysql84-community-release-el7-1.noarch.rpm
(注意: 如果将来此特定版本链接失效,请访问 MySQL 官方 Yum 仓库页面 (https://dev.mysql.com/downloads/repo/yum/
) 找到适用于 RHEL/CentOS 7 的最新链接并替换上面的 URL)
rpm -ivh mysql84-community-release-el7-1.noarch.rpm
3. 导入最新的 MySQL GPG 密钥:
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2023
(提示: 如果上述 URL 无效,请去 MySQL 官网查找最新的 GPG Key URL)
4. (可选) 清理 Yum 缓存:yum clean all
步骤 2:安装 MySQL 服务器
yum install mysql-community-server -y
当提示安装 GPG 密钥时,输入 y
并按 Enter
键确认安装。
等待安装过程完成,确保最后没有 GPG 错误并显示 Complete!
。
步骤 3:启动并设置开机自启 MySQL 服务
1. 启动 MySQL 服务:systemctl start mysqld
2. 检查 MySQL 服务状态:
systemctl status mysqld
3. 设置 MySQL 服务开机自启:
systemctl enable mysqld
步骤 4:初始化安全设置与远程连接配置
1. 查找临时密码: MySQL 8.x 在 首次启动时会为root
用户
生成一个临时密码,并记录在日志文件中。
bash grep 'temporary password' /var/log/mysqld.log
注意: 临时密码是 在冒号
:
后面的那串
随机字符,
请仔细复制,不要找错了。
2. 首次登录并修改密码: MySQL 8.x 的 默认密码策略要求 首次登录后必须 立即修改密码,并且 新密码必须符合复杂性要求。
bash mysql -u root -p
(在提示符后 粘贴您刚刚找到的 临时密码)
登录后,你 不能执行任何其他操作, 必须先修改密码。
为
root
用户设置一个新的强密码。例如:
MyNewPass_123!
(请替换为您自己的强密码)。
sql ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass_123!';
此时,您已经可以用新密码正常操作了。 3.调整密码策略:
如果你确实需要在开发或测试环境中使用简单密码 (例如 123456
),在设置了一个符合策略的强密码之后,你才可以降低密码策略。
SET GLOBAL validate_password.policy = 0;
SET GLOBAL validate_password.length = 6;
validate_password.policy = 0
: 设置为最低策略 (仅检查长度)。validate_password.length = 6
: 设置最小长度为6。
123456
了:
sql ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
4. 创建并授权远程访问用户:
为了安全,最佳实践是不要直接使用 root
用户进行远程连接。我们应该创建一个新用户或授权 root
从特定IP访问。但为了演示方便,这里展示如何允许 root
从任何主机 (%) 访问。
CREATE USER 'root'@'%' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
- 第一行:为所有主机 (
%
) 创建一个名为root
的用户,并设置密码 (这里我们用了刚才设定的简单密码123456
,生产环境应使用强密码!)。 - 第二行:授予这个远程
root
用户在所有数据库所有表上的所有权限,并允许他将权限授予其他用户 (WITH GRANT OPTION
)。 - 第三行:刷新权限,使更改立即生效。
exit;
重要提示: 如果您的CentOS 7启用了防火墙 (firewalld),您需要开放 MySQL 的端口 (默认为 3306
) 以允许远程连接。
sudo firewall-cmd --permanent --add-port=3306/tcp
sudo firewall-cmd --reload
步骤 5:在客户端任意主机上测试连接
在另一台安装了MySQL客户端的机器上运行:
将 你的服务器IP
替换为CentOS 7服务器的实际IP地址。
mysql -h 你的服务器IP -u root -p
(按提示输入您为 'root'@'%'
用户设置的密码,即 123456
)
如果成功连接并看到 MySQL 的欢迎信息和提示符,说明您的远程连接配置成功了!