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

Permission Denied on MariaDB Replication Slave to Master Server connection

正在尝试创建数据库复制服务器。我用这个 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]

bind-address 和 skip-networking 在主服务器 cnf 文件中被注释掉了。 我在创建复制用户时也在Master中执行了这些SQL:

CREATE USER ‘replication_user’@’%’ INDETIFIED BY ‘[PASSWORD]’;
GRANT REPLICATION SLAVE ON *.* TO ‘replication_user’@’%’;

我在主服务器上为我的 mysql 服务器使用自定义端口,我也在主服务器的防火墙中打开了该端口。

发现 SElinux 不允许 mysql 的非标准端口。

已通过 运行 从属服务器中的以下命令修复了问题:

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

其中 [PORT] 需要是您用于主 mysql 服务器的端口。这将告诉 SElinux 允许非标准端口。