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 允许非标准端口。
正在尝试创建数据库复制服务器。我用这个 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 允许非标准端口。