解决 MySQL 主从复制中的 \
2024-03-23 00:44:16
MySQL 主从复制中“Authentication requires secure connection”错误的解决方案
问题概述
在设置 MySQL 主从数据复制时,你可能会遇到一个错误:“Authentication plugin 'caching_sha2_password' reported error: Authentication requires secure connection, [closed]”。这表示主服务器要求安全连接,而从服务器无法建立安全连接。
解决方案
1. 在主服务器上启用 SSL
- 以 root 用户身份登录 MySQL。
- 授予复制用户使用 SSL 连接的权限:
GRANT USAGE ON *.* TO 'replication_user'@'%' IDENTIFIED BY 'your_password' REQUIRE SSL;
FLUSH PRIVILEGES;
2. 在从服务器上创建复制用户
- 以 root 用户身份登录 MySQL。
- 创建与主服务器上相同的复制用户:
CREATE USER 'replication_user'@'%' IDENTIFIED BY 'your_password';
3. 修改从服务器的 my.cnf 配置
- 编辑
/etc/my.cnf
配置文件。 - 在 [mysqld] 部分添加以下行:
ssl-mode=REQUIRED
ssl-ca=/path/to/server-ca.pem
ssl-cert=/path/to/server-cert.pem
ssl-key=/path/to/server-key.pem
4. 重新启动主服务器和从服务器
- 重新启动主服务器和从服务器:
sudo service mysql restart
5. 重新配置从服务器
- 再次以 root 用户身份登录 MySQL。
- 重新配置从服务器:
CHANGE MASTER TO MASTER_HOST='<ip_of_master_server>',
MASTER_USER='replication_user',
MASTER_PASSWORD='your_password',
MASTER_PORT=3306;
6. 启动从服务器的复制
- 启动从服务器的复制:
START SLAVE;
7. 检查从服务器状态
- 运行
SHOW SLAVE STATUS \G;
,验证复制是否正常运行。
常见问题解答
1. 为什么会出现此错误?
主服务器要求使用 SSL 安全连接,而从服务器无法建立安全连接。
2. 我如何检查我的 my.cnf 配置是否正确?
在修改 my.cnf 配置后,重新启动 MySQL 并运行 SHOW VARIABLES LIKE '%ssl%';
命令,检查 SSL 相关设置是否正确。
3. 复制用户需要什么权限?
复制用户需要以下权限:
- REPLICATION SLAVE
- REPLICATION CLIENT
- USAGE
- SUPER
4. 如何知道我的主服务器和从服务器是否兼容?
确保主服务器和从服务器使用相同版本的 MySQL。
5. 如何解决“slave_IO_running: No”错误?
检查主服务器和从服务器之间的网络连接,确保端口 3306 可用。
结论
通过遵循这些步骤,你可以解决 MySQL 主从复制中“Authentication requires secure connection”错误。记住,配置安全连接对于确保复制过程的稳定性和安全性至关重要。