抱歉,如果我犯了一个错误,这是我的第一篇文章。
我的问题
如何配置主/从 mysql 数据库以更改主发送数据的端口(我想要端口 3307 而不是 3306)?
我需要这样做才能拥有多个从属数据库。
配置
所以我有一个schema of my replication environment .
还有一个part of my Docker compose yaml file .
带端口:
php_my_admin:
ports:
- '8081:80'
db_caucasus:
ports:
- '3307:3307'
为了启动主/从复制,我做了:
stop slave;
CHANGE MASTER TO MASTER_HOST='11.111.111.01', MASTER_USER='db-rep', MASTER_PASSWORD='001', MASTER_LOG_FILE='mysql-bin.000111', MASTER_LOG_POS= 111, MASTER_PORT=3306;
start slave;
之后:
主数据库上的服务器 ID 正确为 777
从数据库上的
SHOW SLAVE STATUS
正常(Slave_IO_Running:OK,Slave_SQL_Running:OK,相同的Master_Log_File和相同的Read_Master_Log_Pos)
当我修改主数据库上的数据时,我可以看到复制数据被发送到端口3306(例如使用下面的命令)
tcpdump -A port 3306 and host 11.111.111.01
tcpdump -A port 3307 and host 11.111.111.01
预先感谢您的回答!
最佳答案
您必须在 docker-compose.yml 中链接 mysql 主服务器和从服务器。如果主设备和从设备都配置正确,它们应该可以毫无问题地进行通信。
mysql_slave:
ports:
- "3307:3307"
mysql_master:
ports:
- "3306:3306"
links:
- mysql_slave
关于mysql - 用于 mysql 复制的端口转发(在 docker 内),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42008036/