最近MySQL经常报主从错误,如果是网络问题,应该是间断性的,但是今天早上一直在报错。上去看了一下log,发现一直在报这个错误:

 11:30:01 [Note] Slave I/O thread killed while connecting to master27 11:30:01 [Note] Slave I/O thread exiting, read up to log 'master-bin.000052', position 30867802727 11:30:01 [Note] Slave SQL thread initialized, starting replication in log 'master-bin.000052' at position 308678027, relay log './copyer1-relay-bin.002681' position: 538276627 11:30:02 [ERROR] Slave I/O: error connecting to master 'copyer@10.242.73.34:3306' - retry-time: 60  retries: 86400, Error_code: 1129

在命令行手动执行远程连接:

[xxx@xxx-xxx-xxx.xxx mysql-5.1.73-linux-x86_64-glibc23]$ bin/mysql -h10.242.73.34 -ucoyper -pEnter password:ERROR 1129 (HY000): Host 'xxxxx' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'

这下子对1129错误码有了更明确的错误信息和指示。谷歌一下,根据官方文档 B.5.2.6 Host 'host_name' is blocked 进行相应的操作:

登陆到master,执行:

mysql> flush hosts;Query OK, 0 rows affected (0.00 sec)

slave立马就可以连接成功了。

再把允许的错误连接调大:

mysql> SET GLOBAL max_connect_errors=10000;Query OK, 0 rows affected (0.00 sec)

固化在配置文件中: [root@xxxx ~]# vim /etc/my.cnf max_connect_errors = 10000

但是正如官方文档所说的,这个错误一般是因为网络原因,但是如果是网络原因,调整这个参数其实对于主从同步没有什么帮助。。

If you get the Host 'host_name' is blocked error message for a given host, you should first verify that there is nothing wrong with TCP/IP connections from that host. If you are having network problems, it does you no good to increase the value of the max_connect_errors variable.

但是同步问题还是一直存在,统计了一下,发现主要是如下错误码

[xxx@xxx log]$ grep 'Error_code:' mysqld.log| awk '{print $NF}'|sort | uniq -c | sort -n 2003115911292013

对照官方错误码文档 Appendix B Errors, Error Codes, and Common Problems ,主要是如下错误:

Error: 1129 SQLSTATE: HY000 (ER_HOST_IS_BLOCKED) Message: Host '%s' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'

Error: 1159 SQLSTATE: 08S01 (ER_NET_READ_INTERRUPTED) Message: Got timeout reading communication packets

Error: 2003 (CR_CONN_HOST_ERROR) Message: Can't connect to MySQL server on '%s' (%d)

Error: 2013 (CR_SERVER_LOST) Message: Lost connection to MySQL server during query

一看很明显,都是网络问题,1129前面已经说过了。现在看报的最多的2013。同样在官方文档上也有相应的说明:

  1. B.5.2.3 Lost connection to MySQL server

  2. B.5.2.9 MySQL server has gone away

建议是调整timeout相关的参数看看 5.1.4 Server System Variables :

  • connect_timeout

  • net_read_timeout

  • net_write_timeout

  • slave_net_timeout

  • wait_timeout

使用 show variables; 可以看到现在的值:

  • connect_timeout = 10

  • interactive_timeout = 28800

  • net_read_timeout = 30 |

  • net_retry_count = 10

  • net_write_timeout = 60

  • slave_net_timeout = 3600

  • wait_timeout = 28800

可以用 SET语句 进行动态修改:

mysql> SET GLOBAL net_read_timeout=60;mysql> SET GLOBAL net_write_timeout=120;

改了一下,貌似好一些,但是还是会不时报错。。网络问题,没有太好的办法:

原文地址:MySQL主从同步失败, 感谢原作者分享。

转载于:https://blog.51cto.com/nanchunle/1658423

MySQL主从同步失败相关推荐

  1. mysql数据库binlog日志截断报错,导致mysql主从同步失败故障排查

    mysql数据库binlog日志截断报错,导致mysql主从同步失败故障排查 Got fatal error 1236 from master when reading data from binar ...

  2. MySQL主从同步问题集

    http://blog.chinaunix.net/uid-8786588-id-3771613.html 在InnoDB引擎下发现,Mysql的主从热备存在数据不一致的问题,一些数据没有成功同步到备 ...

  3. shell脚本修复MySQL主从同步

    shell脚本修复MySQL主从同步 发布:thebaby   来源:net     [大 中 小] 分享一例shell脚本,用于修改mysql的主从同步问题,有需要的朋友参考下吧. 一个可以修改my ...

  4. mysql主从同步默认延迟_减少mysql主从数据同步延迟问题的详解

    基于局域网的master/slave机制在通常情况下已经可以满足'实时'备份的要求了.如果延迟比较大,就先确认以下几个因素: 1. 网络延迟 2. master负载 3. slave负载 一般的做法是 ...

  5. mysql主从同步搭建和故障排除

    主从同步的定义:  是存储数据的一种结构模式. 主:被客户端访问的数据库服务器就是主库服务器master 从:连接主库服务器,自动同步主库的所有数据到本机slave 1.什么是mysql主从同步? 当 ...

  6. 部署mysql主从同步

    部署mysql主从同步 一.什么是mysql主从同步 主:正在被客户端访问的数据库服务器,被称作主库服务器. 从:自动同步主库上的数据的数据库服务器,被称作从库服务器. 二.配置mysql主从同步 2 ...

  7. 监控mysql主从的工具_zabbix利用percona-toolkit工具监控Mysql主从同步状态

    一.下载percona-toolkit工具包 percona-toolkit是一组高级命令行工具的集合,可以查看当前服务的摘要信息,磁盘检测,分析慢查询日志,查找重复索引,实现表同步等等. [root ...

  8. [MySQL]-主从同步实战-主从搭建

    [MySQL]-主从同步实战 森格 | 2022年12月14日 本文主要为在平时work中遇到的主从同步上的问题的处理,对其进行巩固总结. 一.场景介绍 ​ 在一个风和日丽的下午4点半,突然就收到一个 ...

  9. MySQL主从同步详解与配置

    https://zhuanlan.zhihu.com/p/335142300 MySQL主从同步详解与配置 第一部分[原理解析] * 应用背景* MySQL数据库自身提供的主从复制功能可以方便的实现数 ...

最新文章

  1. Open Cascade DataExchange DXF
  2. python环境搭建_搭建Python编程环境
  3. 在Servlet中实现页面转发
  4. 邀您参加 | K8S云原生技术开放日-北京站
  5. Gartner:云安全的未来——中国的安全访问服务边缘架构
  6. O2O年度反思:流量不再为王不赚钱就得死
  7. jetty;linux 目录结构
  8. 计算机信息管理专业教学改革,计算机信息管理专业实践教学改革探索
  9. leaks will report false positives while the environment variable NSZombiesEnable is active
  10. 人脸关键点检测原理及实战
  11. zotero+PDF expert+坚果云+iPad
  12. Codeforces Global Round 21 E. Placing Jinas
  13. 仅需一个app就能像homeassistant一样实现跨品牌联动?
  14. 《Molecular Plant》新思路:比较转录组+比较基因组研究小麦高效氮利用分子机制
  15. Web Spider 常见混淆EVAL、AA、JJ、JSFUCK
  16. 解决 ERROR 2002 (HY000) Can‘t connect to local MySQL server through socket ‘tmpmysql.sock‘
  17. 计算机基础.doc免费,计算机基础教案(完整版).doc
  18. 幼儿教师个人简历模板范文
  19. QNX系列:二、进程间消息传递
  20. Docker 容器健康检查机制

热门文章

  1. 10进制与16进制之间的转换 delphi
  2. 在linux下安装配置svn独立服务器
  3. Eclipse删除文件的恢复(转)
  4. 数据分析需求转型与商业模式重构
  5. JDK源码分析-Integer
  6. BZOJ4573 : [Zjoi2016]大森林
  7. JFinal 源码导读第二天(2)configPlugin,configRoute
  8. ubuntu 各版本的区别
  9. 移动web开发常用JavaScript代码(转)
  10. Python技术学习之Django框架设计思想