通过 SSH 进行 MySQL 复制 - Last_IO_Errno:2003 - 连接到主服务器时出错

通过 SSH 进行 MySQL 复制 - Last_IO_Errno:2003 - 连接到主服务器时出错

我通过 LAN 在两个测试箱(Centos 6.4 / MySQL 5.5.32)上进行了 MySQL MASTER/SLAVE 复制。

通过 ssh 保护连接会导致 SLAVE 机器出现连接问题:

(样本显示从属状态 \G输出)

Last_IO_Errno: 2003 Last_IO_Error: 连接主机时出错'[电子邮件保护]:3305'-重试时间:60

我已授予复制用户在主服务器上使用 127.0.0.1 和网络 IP 的相关权限。

我已通过 SSH 将端口从从服务器转发到主服务器

ssh -f 192.168.0.128 -L 3305:192.168.0.128:3306 -N

我可以从从属服务器连接到主 MySQL

mysql -urep -p密码-h127.0.0.1 -P3305

主服务器设置似乎很好,因为它无需隧道即可工作,并且隧道似乎很好,因为我可以在两者之间连接到 MySQL。

更改主语句:

将 MASTER 更改为 MASTER_HOST='127.0.0.1'、MASTER_PORT=3305、MASTER_USER='rep'、MASTER_PASSWORD='password';

注意:我知道使用 SSL 而不是 SSH 的理由,但我有理由认为 SSH 对我的设置来说是更好的选择。

答案1

谢谢大家的帮助,但事实证明问题是 SELinux 不允许 MySQL 在非标准端口上运行。

答案2

您可以使用 semanage 为 mysqld 允许额外的非标准端口

sudo /usr/sbin/semanage port -a -t mysqld_port_t -p tcp 3305

然后你可以验证使用

sudo /usr/sbin/semanage port -l | grep mysql

您将看到新端口与标准端口 3306 一起显示

mysqld_port_t tcp 3305, 3306, 63132-63164

相关内容