[Docker-2]排查基于docker部署mysql主从过程中遇到“Slave_IO_Running: Connecting”这个疑难杂症
关于“Slave_IO_Running: Connecting”的排查方法,已经有很多博客写得清清楚楚了(很多都是复制粘贴..真浪费时间),那么如果已有的常规排查方法都不能解决你的问题,而且你是在docker中部署主从集群的话,或许这篇文可以帮到你。
建议先看这个问题的常规的排查方法,如果解决不了你再回来看本文。
https://blog.csdn.net/mbytes/article/details/86711508
贴士:
- 如果你是基于docker部署主从,而且是刚刚使用docker新手,那你就可能不知道挂载和数据卷这两个docker基础知识,这会影响你阅读本文解决问题,所以你需要另外查找资料学习了这两个知识点才能继续看本文。并且要把问题原因和分析部分看清楚理解了,糊里糊涂地解决是不会进步的。
- 如果是没有使用docker的朋友,可以直接看解决方法。
- 造成Slave_IO_Running: Connecting可能不只是一项问题,有可能是多个问题,譬如常规排查方法中的包含的网关或者账户权限,如果这两个都有问题的话都会出现Slave_IO_Running: Connecting的,详情原因可以使用docker logs -f [容器ID]看看日志怎么说。
原因一:PORT错误
问题原因和分析:
这个问题我也是偶然才发现的,我忽然想到既然在容器A只需容器B的ip就能直接登录容器B的mysql,那是不是意味着slaveIO线程是直接在同一局域网(docker虚拟网卡)内直连另一个容器的,所以不用输入端口。所以我就试了以下把
change master to master…master_port=[宿主机映射端口]...
改为
change master to master …master_port=3306...
然后重启slave。
解决方法:
slave 连接master端口改为3306,这时候重启slave就能解决问题了。如果还是不行,那就多半因为本文的原因二了,而且你可以使用docker logs -f [slave容器ID]看看日志报错是不是说UUID重复,如果是那就铁定就是原因二了。
原因二:UUID一致
问题原因和分析:
docker 的官方mysql镜像的 用户账号\数据库和表\日志文件…这些都在/var/lib/mysql/下,这是为mysql挂载数据卷的基础知识,但在用docker部署主从的时候你可能会像我一样直接将这些配置拷贝多份分配给各个实例作为其数据卷挂载,也正是因为如此才导致每份拷贝下的auto.cnf文件内容相同。
由101拷贝出的其它所有文件
auto.cnf文件位置,在mysql镜像中路径是/var/lib/mysql/,在宿主机中路径是 $docker数据卷默认/xxxx/_data/
我这里的是自定义挂载,所以图中的路径没有参考价值,继续往下看
关于这个auto.cnf,其实它的作用是供mysql实例读取server-id用的,而其内容是一串UUID,这串UUID是根据你在my.cnf为主从配置的server-id生成的。所以懂了吧,即使你在每个实例的my.cnf写了不一样的server-id,但实例读取的是auto-cnf里的,也mysql集群里都读了着同一串UUID。(虽然报错告诉你UUID一致,但本质上是因为集群每个节点都使用着同一个server-id)
解决方法:
直接删掉你各个实例的auto.cnf即可,删除后重启实例就可以解决这个UUID重复报错了。UUID重复问题排除后应该就能解决这个问题了。
最新文章
- 关于C#垃圾回收
- Babelfish(poj 2503)
- 嵌入式Linux的FTP服务端软件(stupid-ftpd)
- Android -- FragmentTabHost实现微信底部切换
- RelativeLayout用到的一些重要的属性
- 转-安卓中实现两端对齐,中间fill_parent的方法
- 锁之“轻量级锁”原理详解(Lightweight Locking)
- 十六款值得关注的NoSQL与NewSQL数据库--转载
- docker中搭建gitlab
- 配置pyqt5环境 for python3.4 on Linux Mint 17.1
- java如何获取本机IP
- PL/SQL Developer使用技巧(部分)
- API网关系列之Kong的介绍以及安装
- C语言博客作业—嵌套循环
- 通过终端使用ssh-keygen免密码登录远程服务器
- linux下实用的快速随机生成复杂密码
- Codeforces Round #493 (Div. 2)
- jQuery.extend()参数
- QMD ST表 倍增
- Tarjan求割点&;桥
热门文章
- 经典this指向问题
- .NET遍历二维数组-先行/先列哪个更快?
- Altium Designer v23.0.1.38图文详解
- 真正“搞”懂HTTPS协议18之TLS特性解析
- 网络继电器的EPICS IOC搭建
- React Hooks的理解,React Hooks有哪些,解决了什么问题
- 线段树优化DP学习笔记 &; JZOJ 孤独一生题解
- 我在京东做研发 | 从好玩到好用,爆火ChatGPT前沿分享
- 用ChatGPT,绘制一个账号系统的C4架构图
- Ubuntu18完全卸载php7.2