请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

主从连接连接不上

我发现主从同步是不是可以不使用 docker 网络连接的, 用 ip:port 也可以. (向老师求证)
图一是我使用 CHANGE MASTER 命令自己设置的

在 rn2 上查询
SHOW SLAVE STATUS;
主: 192.168.31.160:9003 rn1
从: 192.168.31.74:9003 rn2
图片描述

在 rn6 上查询
SHOW SLAVE STATUS;
主: 192.168.31.160:9004 rn5
从: 192.168.31.74:9004 rn6
图片描述

由于连接问题我研究了整整一天的时间, 出现各种情况, 包括查询
SHOW SLAVE STATUS
返回 0 条记录 (对于这个问题, 我感觉是防火墙的问题, 但是 2377/tcp 我已经开启了. 并且已经 reload. docker 也重启了. 后来我是把整个防火墙禁用了)
后来是我使用 CHANGE MASTER 命令自己设置的
CHANGE MASTER 命令执行之后也有报错
Slave_IO_Running 为 No 或 Connecting
Slave_SQL_Running 为 No
找了很多方法 (本人小白)

说白了就是并没有像老师演示的那样那么轻松, 一步到位.
包括我想找到 replication 容器中的 mysql 配置文件 my.cnf (我发现在数据卷中有一个叫 auto.cnf 的, 但里面没什么内容), 有可能不是保存在数据卷中, 这就要在容器中找 MySQL 安装目录了 (鬼知道在哪, 在百度上说要检查这个文件, 不过我最后也没用到)
想找到错误日志, 不过我没找到 (到最后也没找到, 出错了也是一脸懵逼)

由于在这之前慕课网该课程里没有找到关于这方面的问答.
写这个提问是想让老师补充一些关于连接不上的一些问题的解决方法 (我记得老师在视频中只是说了主库或从库停止或连接不上时闪退以及主从同步因此失效的问题, 并没有说连接不上怎么解决).
作为一个小白, 搞了一天是心情是非常崩溃的.

正在回答

1回答

docker容器只能由外部访问,容器不能主动访问外部网络。所以我们把docker搭建成swarm网络之后容器之间是可以访问的,你的办法行不通

0 回复 有任何疑惑可以回复我~
  • 提问者 冲锋战神 #1
    但我还是有疑问, SHOW SLAVE STATUS 显示的是 host 是 ip地址不是容器名, 端口也是 9003. 而且我实测是可以同步成功的呀, 咋回事?
    回复 有任何疑惑可以回复我~ 2019-09-17 12:32:14
  • 神思者 回复 提问者 冲锋战神 #2
    你就别折腾了,异地容器必须编组成swarm才能搭建MySQL集群
    回复 有任何疑惑可以回复我~ 2019-09-17 14:33:26
  • 提问者 冲锋战神 #3
    非常感谢!
    回复 有任何疑惑可以回复我~ 2019-09-17 17:32:21
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信