关于“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. Java CompletableFuture 异步超时实现探索

    作者:京东科技 张天赐 前言 JDK 8 是一次重大的版本升级,新增了非常多的特性,其中之一便是 CompletableFuture.自此从 JDK 层面真正意义上的支持了基于事件的异步编程范式,弥补 ...

  2. UBUNTU18.04安装CUDA

    1.官方教程https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#ubuntu-installation 2.在h ...

  3. vue3 setup语法糖下,vue自定义指令的实现,以及指令全局挂载,自定义v-loading的实现

    最近一段时间,在做h5的移动端项目,UI组件库使用的vant,vant组件中的loading实在难用,无法包裹某个块进行loading,也无法对非组件的标签进行loading,所以想着自定义写个指令, ...

  4. 安卓逆向 JNI实先java与C互通

    先来一张吊图 jdk_1.6.0_43/include/jni.h  这个头文件的地址 头文件分布 我们需要熟悉的 反射获取java中的类 1.jclass/类型 (JNICALL *FindClas ...

  5. 真·生产力「GitHub 热点速览」

    这些工具真的能极大提高生产力,节约你的时间来自(摸)我(鱼)增(划)值(水).先别提 style2paints,你给它随意画个草图,就能给你一个能交付给甲方爸爸的成品插画.如果提升 30%-40% 传 ...

  6. linux下删除文件夹的软链接时注意千万不能在后面加反斜杠,千万不要用强制删除,否则下面2种场景,你会把源文件删除,要闯祸的

    今天遇到一个坑,自己在子目录下创建了父目录的软链接,导致可以无限循环进入父目录 [clouder@ana53 dir1]$ ll total 8 -rw-rw-r-- 1 clouder cloude ...

  7. JZOJ 3207.Orthogonal Anagram

    \(\text{Problem}\) 给出一个字符串,求经过重新排列的另一个字典序最小的字符串,满足:相同的位置上 原串与结果串的字符不同.不存在则输出空串. \(\text{Solution}\) ...

  8. JZOJ 4752.字符串合成

    \(\text{Problem}\) \(\text{Solution}\) 最优解一定是一个回文子串的最优构造加上剩下的逐个填入 考虑用回文树建出所有的回文串,然后 \(dp\) 求回文子串最优的构 ...

  9. .Net 获取URL中指定参数值

    有时候我们调用第三方接口,返回的并不是完整的链接带参数,而我们只需要获取指定的一些参数 例如:code=200&msg=success&timestamp=1657539&no ...

  10. LeetCode-1664 生成平衡数组的方案树

    题目描述 来源:力扣(LeetCode)链接:https://leetcode.cn/problems/ways-to-make-a-fair-array 给你一个整数数组 nums .你需要选择 恰 ...