关于“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. React Refs-知识点整理记录

    一.Refs的作用 通过Refs,可以访问到 1. DOM节点. 2. render方法中创建的React元素.(class组件的实例) 二.访问节点或者实例有什么用?为什么要使用Refs来访问? 访 ...

  2. composer 安装 laravel指定版本

    composer 安装 laravel指定版本 $ composer create-project --prefer-dist laravel/laravel notelog '7.*'

  3. BIO和NIO的基本用法和API讲解

    1 BIO 可以理解为Blocking IO 是同步阻塞的IO,也就是说,当有多个请求过来的时候,请求会呈现为链状结构,遵循先进先出的原则 1.1 单线程版本 1.1.1 服务端 //服务端单线程处理 ...

  4. Activiti02流程基本功能使用

    主要分为一下几个步骤: 1.画图 2.部署流程-把图的信息转入到数据表格中 3.创建流程实例-开始一个流程-实际发起了一个流程 4.执行任务:获取任务+完成任务 1.画图 画了一个简单的流程图,图形文 ...

  5. C#NPOI操作Excel,实现Excel数据导入导出(支持多个sheet)

    首先在项目中引用NPOI,通过管理NuGet程序包,搜索NPOI,选择版本2.3.0(支持.NET Framework 4.0)根据自己项目选择适当版本. 1.NpoiExcelHelper.cs   ...

  6. 学习Java Day6

    今天学习了Java的输出,与C/C++不同,Java的输出形式有很多,有许多printf标识符表示的含义各不相同,而且数量众多,其中Java还有表示日期的转换符.

  7. 字符串、函数、bug

    字符串 字符串驻留机制 仅保存一份相同且不可变字符串的方法,不同的值别存放在字符串的驻留池中,Python的驻留机制对相同的字符串只保留一份拷贝,后续穿件相同的字符串时,不会开辟新的空间,而是把字符串 ...

  8. webpack核心用法,为什么要使用webpack

    一:为什么使用webpack 1. 代码转换.文件优化.代码分割.模块合并.自动刷新.等等 2. webpack上手 <!DOCTYPE html> <html lang=" ...

  9. Bulldog

    Bulldog 目录 Bulldog 1 信息收集 1.1 端口扫描 1.2 后台目录扫描 1.2.1 目录分析 2 Web-Shell利用 2.1 尝试命令执行 2.2 尝试利用系统命令注入 2.3 ...

  10. CF825F - String Compression

    题意:压缩字符串,把字符串分成若干个子串,每个子串可以被压缩成"循环次数 \(+\) 循环节"的形式,求最小长度. dp 求 lcp 先 \(O(n^2)\) dp 求出所有后缀对 ...