关于“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重复问题排除后应该就能解决这个问题了。

[Docker-2]排查基于docker部署mysql主从过程中遇到“Slave_IO_Running: Connecting”这个疑难杂症的更多相关文章

  1. springboot多数据源配合docker部署mysql主从实现读写分离

    本篇主要有两部分: 1.使用docker部署mysql主从 实现主从复制 2.springboot项目多数据源配置,实现读写分离 一.使用docker部署mysql主从 实现主从复制 此次使用的是wi ...

  2. 【Docker】 使用Docker 在阿里云 Centos7 部署 MySQL 和 Redis (二)

    系列目录: [Docker] CentOS7 安装 Docker 及其使用方法 ( 一 ) [Docker] 使用Docker 在阿里云 Centos7 部署 MySQL 和 Redis (二) [D ...

  3. 在 CentOS7 上部署 MySQL 主从

    在 CentOS7 上部署 MySQL 主从 通过 SecureCRT 连接至 MySQL 主服务器: 找到 my.cnf 文件所在的目录: mysql --help | grep my.cnf 一般 ...

  4. 部署mysql主从同步

                                                 mysql-day06        部署mysql主从同步 案例拓扑 • 一主.一从 – 单向复制时,建议将 ...

  5. mysql安装过程中出现错误ERROR 1820 (HY000): You must SET PASSWORD before executing this statement解决

    mysql安装过程中出现错误ERROR 1820 (HY000): You must SET PASSWORD before executing this statement解决   最近新装好的my ...

  6. mysql 安装过程中的错误:my-template.ini could not be processed and written to XXX\my.ini.Error code-1

    安装mysql的过程中,在最后配置mysql时,提示错误:Configuration file tmeplate E:\编程\MySQL\my-template.ini could not be pr ...

  7. Mysql安装过程中出现apply security settings错误的解决方法

    在学习Mysql的过程中,首先要安装Mysql.然而在第一遍安装过程中难免会出现安装错误的时候,当卸载后第二次安装(或者第三次甚至更多次)的时候,往往在安装最后一步会出现apply security ...

  8. MySQL安装过程中对The error code is 2203的解决方案

    MySQL安装过程中对The error code is 2203的解决方案 1.问题描述 Windows系统安装MySQL遇到The error code is 2203.,具体描述如下 The i ...

  9. docker初识-docker安装、基于docker安装mysql及tomcat、基本命令

    一.docker是什么 用go语言开发,开源的应用容器引擎,容器性能开销极低 二.整体架构图 Docker 包括三个基本概念: 镜像(Image):Docker 镜像(Image),就相当于是一个 r ...

  10. 【docker构建】基于docker构建wordpress博客网站平台

    WordPress是使用PHP语言开发的博客平台,用户可以在支持PHP和MySQL数据库的服务器上架设属于自己的网站.也可以把 WordPress当作一个内容管理系统(CMS)来使用. WordPre ...

随机推荐

  1. JSP第二次作业

    1.p39   实验2 显示当前时间,并输出上午(0-12)好,下午好(13-17),晚上好(18-23) 1 <%@ page language="java" import ...

  2. Seal 0.4 发布:软件供应链安全洞察更上一层楼!

    今天,我们很高兴宣布 Seal 0.4 已正式发布!在上一个版本中,Seal 完成了从单一产品到全链路平台的转变,通过全局视图帮助用户掌握软件开发生命周期各个环节的安全状况. 在 Seal 0.4 中 ...

  3. Mysql中where if问题

    网上关于Mybatis中where与if的说法乱七八糟的,Myabtis官网写的很清晰.为了防止误导他人,在此记录: 1.where语句+< if > 标签 <select id=& ...

  4. Java7.10

    很不能理解以下代码的问题???

  5. 学习Vue过程中遇到的问题---code: 'MODULE_NOT_FOUND'

    在学习安装脚手架Vue-cli过程中 步骤为: 第一步(仅第一次执行):全局安装@vue/cli. npm install -g @vue/cli 第二步:切换到你要创建项目的目录,然后使用命令创建项 ...

  6. Jetpack Compose学习(11)——Navigation页面导航的使用

    原文:Jetpack Compose学习(11)--Navigation页面导航的使用 - Stars-One的杂货小窝 在Android原生的View开发中的,也是有Navigation,原生我之后 ...

  7. 生物标记钙卫蛋白在RA诊疗中的应用研究

    标签: 类风湿关节炎; 预测因子; 钙卫蛋白; S100A9 [文献摘记]生物标记钙卫蛋白在RA诊疗中的应用研究 电邮发布日期:2016年4月20日 不断提升精确度和应用范围的组学技术正在帮助包括类风 ...

  8. LeetCode 39. 组合总和 40.组合总和II 131.分割回文串

    欢迎关注个人公众号:爱喝可可牛奶 LeetCode 39. 组合总和 40.组合总和II 131.分割回文串 LeetCode 39. 组合总和 分析 回溯可看成对二叉树节点进行组合枚举,分为横向和纵 ...

  9. 代码随想录算法训练营day02 | leetcode 977/209/59

    leetcode 977   分析1.0:   要求对平方后的int排序,而给定数组中元素可正可负,一开始有思维误区,觉得最小值一定在0左右徘徊,但数据可能并不包含0:遂继续思考,发现元素分布有三种情 ...

  10. 【RocketMQ】Dledger日志复制源码分析

    消息存储 在 [RocketMQ]消息的存储一文中提到,Broker收到消息后会调用CommitLog的asyncPutMessage方法写入消息,在DLedger模式下使用的是DLedgerComm ...