mariadb复制从服务器到主服务器连接的权限被拒绝

iih3973s  于 2021-06-15  发布在  Mysql
关注(0)|答案(1)|浏览(423)

正在尝试创建数据库复制服务器。我使用以下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服务器使用一个自定义端口,我也在主服务器的防火墙中打开了这个端口。

jdg4fx2g

jdg4fx2g1#

发现selinux不允许mysql使用非标准端口。
通过在从属服务器中运行以下命令修复了此问题:

sudo /usr/sbin/semanage port -a -t mysqld_port_t -p tcp [PORT]

其中,[端口]必须是您的主mysql服务器所使用的端口。这将告诉selinux允许非标准端口。

相关问题