【问题标题】:Port forward for mysql replication (within docker)mysql复制的端口转发(在docker内)
【发布时间】:2017-02-03 13:18:32
【问题描述】:

对不起,如果我做错了,这是我的第一篇文章。

我的问题

如何配置 Master/Slave mysql db 以更改 master 发送数据的端口(我想要端口 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;

然后:

  • master db 上的 server-id 正确为 777

  • 从属 db 上的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

提前感谢您的回答!

【问题讨论】:

    标签: mysql docker docker-compose


    【解决方案1】:

    您必须在 docker-compose 中链接 mysql master 和 slave。如果 master 和 slave 配置正确,它们应该可以毫无问题地通信。

    mysql_slave:
         ports:
            - "3307:3307"
    mysql_master:
         ports:
            - "3306:3306"
         links:
            - mysql_slave
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-02-24
      • 1970-01-01
      • 2011-08-28
      • 1970-01-01
      • 2017-01-30
      • 1970-01-01
      • 1970-01-01
      • 2021-08-22
      相关资源
      最近更新 更多