尝试创建数据库复制服务器。我使用以下SQL设置了从属服务器:
CHANGE MASTER TO MASTER_HOST='[IP OF MASTER SERVER]', MASTER_USER='replication_user',
MASTER_PASSWORD='[PASSWORD]', MASTER_PORT=[PORT], MASTER_LOG_FILE='master1-
bin.000001', MASTER_LOG_POS=42266, MASTER_CONNECT_RETRY=10;
运行SHOW SLAVE STATUS \ G:时出现此错误。
Last_IO_Error: error connecting to master 'replication_user@[IP]:[PORT]' - retry-time: 10 maximum-retries: 86400 message: Can't connect to MySQL server on '[IP]' (13 "Permission denied")
如果运行以下命令,我便能够从从属服务器访问我的主mysql服务器:
mysql -ureplication_user -p[PASSWORD] -h [IP] -P [PORT]
绑定地址和跳过网络在主服务器cnf文件中被注释掉。 创建复制用户时,我还在Master中执行了以下SQL:
CREATE USER ‘replication_user’@’%’ INDETIFIED BY ‘[PASSWORD]’;
GRANT REPLICATION SLAVE ON *.* TO ‘replication_user’@’%’;
我正在为主服务器上的mysql服务器使用自定义端口,我也在主服务器的防火墙中为其打开了此端口。
答案 0 :(得分:1)
发现SElinux不允许mysql使用非标准端口。
通过在从属服务器上运行以下命令解决了该问题:
sudo /usr/sbin/semanage port -a -t mysqld_port_t -p tcp [PORT]
[PORT]必须是用于主mysql服务器的端口。这将告诉SElinux允许非标准端口。