返回

解决 MySQL 主从复制中的 \

mysql

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”错误。记住,配置安全连接对于确保复制过程的稳定性和安全性至关重要。