[ERROR] Slave I/O: error connecting to master

本文涉及的产品
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
RDS AI 助手,专业版
RDS DuckDB + QuickBI 企业套餐,8核32GB + QuickBI 专业版
简介:
刚配置的MySQL主从,在从机上看到 
点击(此处)折叠或打开 
mysql> SHOW slave STATUS \\G 
*************************** 1. row *************************** 
               Slave_IO_State: Connecting to master 
                  Master_Host: 172.17.210.199 
                  Master_User: my 
                  Master_Port: 3306 
                Connect_Retry: 60 
              Master_Log_File: masters-bin.000003 
          Read_Master_Log_Pos: 1224 
               Relay_Log_File: testmysql-relay-bin.000001 
                Relay_Log_Pos: 4 
        Relay_Master_Log_File: masters-bin.000003 
             Slave_IO_Running: Connecting 
            Slave_SQL_Running: Yes 
              Replicate_Do_DB: 
          Replicate_Ignore_DB: 
看日志有很多: 
点击(此处)折叠或打开 
141010 0:02:48 [ERROR] Slave I/O: error connecting to master \'my@172.17.210.199:3306\' - retry-time: 60 retries: 1, Error_code: 2003 
141010 0:03:48 [ERROR] Slave I/O: error connecting to master \'my@172.17.210.199:3306\' - retry-time: 60 retries: 2, Error_code: 2003 
141010 0:04:48 [ERROR] Slave I/O: error connecting to master \'my@172.17.210.199:3306\' - retry-time: 60 retries: 3, Error_code: 2003 
141010 0:05:48 [ERROR] Slave I/O: error connecting to master \'my@172.17.210.199:3306\' - retry-time: 60 retries: 4, Error_code: 2003 
141010 0:06:48 [ERROR] Slave I/O: error connecting to master \'my@172.17.210.199:3306\' - retry-time: 60 retries: 5, Error_code: 2003 
141010 0:07:48 [ERROR] Slave I/O: error connecting to master \'my@172.17.210.199:3306\' - retry-time: 60 retries: 6, Error_code: 2003 
解决方法:  
  
导致lave_IO_Running 为connecting 的原因主要有以下 3 个方面:  
  
1、网络不通  
2、密码不对  
3、pos不对 
解决步骤: 
1、对于第一个问题,一般情况下都是可以排除的,也是最容易排除的。 
2、在主库上修改用来复制的用户的密码。 
3、 在做chang to 的时候注意log_pos 是否跟此时主机的一样。在主机上 show master status \G ;可以查看到 
mysql> show master status \G; 
*************************** 1. row *************************** 
             File: masters-bin.000003 
         Position: 2392 
     Binlog_Do_DB: 
Binlog_Ignore_DB: 
Executed_Gtid_Set: 
1 row in set (0.00 sec) 
ERROR: 
No query specified 
从机上面执行change to 的正确 
CHANGE MASTER TO 
MASTER_HOST='172.17.210.199', 
MASTER_USER='my', 
MASTER_PASSWORD='123456', 
MASTER_LOG_FILE='masters-bin.000003', 
MASTER_LOG_POS= 2392; 

我的问题,就是主机的防火墙没有关闭 


==================================================================== 
由于主服务器异外重启, 导致从报错, 错误如下: 
show slave status错误: 
mysql> show slave status\G 
Master_Log_File: mysql-bin.000288 
Read_Master_Log_Pos: 627806304 
Relay_Log_File: mysql-relay-bin.000990 
Relay_Log_Pos: 627806457 
Relay_Master_Log_File: mysql-bin.000288 
Slave_IO_Running: No 
Slave_SQL_Running: Yes 
Exec_Master_Log_Pos: 627806304 
Relay_Log_Space: 627806663 


...... 
Last_IO_Error: Got fatal error 1236 from master when  reading data from binary log: 
'Client requested master to start  replication from impossible position' 
mysql错误日志: 

tail /data/mysql/mysql-error.log 
111010 17:35:49 [ERROR] Error reading packet from server: Client requested master 
to start replication from impossible position ( server_errno=1236) 
111010 17:35:49 [ERROR] Slave I/O: Got fatal error 1236 from master when reading data 
from binary log: 'Client requested master to start replication from impossible 
position', Error_code: 1236 
111010 17:35:49 [Note] Slave I/O thread exiting, read up to log 'mysql-bin.000288', 
position 627806304 
按照习惯, 先尝试必改position位置. 

mysql> stop slave; 
mysql> change master to master_log_file='mysql-bin.000288',master_log_pos=627625751; 
mysql> start slave; 
错误依旧, 接下来登陆到主服务器查看binlog日志. 
先按照错误点的标记去主服务器日志中查找: 

[root@db1 ~]# mysqlbinlog --start-position=627655136 /data/mysql/binlog/mysql-bin.000288 
/*!40019 SET @@session.max_insert_delayed_threads=0*/; 
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; 
DELIMITER /*!*/; 
# at 4 
#111010 13:31:19 server id 4 end_log_pos 106 Start: binlog v 4, server v 5.1.45-log 
created 111010 13:31:19 
# Warning: this binlog is either in use or was not closed properly. 
BINLOG ' 
F1aTTg8EAAAAZgAAAGoAAAABAAQANS4xLjQ1LWxvZwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 
AAAAAAAAAAAAAAAAAAAAAAAAEzgNAAgAEgAEBAQEEgAAUwAEGggAAAAICAgC 
'/*!*/; 
DELIMITER ; 
# End of log file 
ROLLBACK /* added by mysqlbinlog */; 
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/; 
没有看到这个位置. 

[root@db1 ~]# mysqlbinlog /data/mysql/binlog/mysql-bin.000288 > test.txt 

less text.txt 
看最后一部分 
# at 627625495 
#111010 16:35:46 server id 1 end_log_pos 627625631 Query thread_id=45613333 
exec_time=32758 error_code=0 
SET TIMESTAMP=1318289746/*!*/; 
delete from freeshipping_bef_update where part='AR-4006WLM' and code='' 
/*!*/; 
# at 627625631 
#111010 16:35:46 server id 1 end_log_pos 627625751 Query thread_id=45613333 
exec_time=32758 error_code=0 
SET TIMESTAMP=1318289746/*!*/; 
delete from shippingFee_special where part='AR-4006WLM' 
/*!*/; 
DELIMITER ; 
# End of log file 
ROLLBACK /* added by mysqlbinlog */; 
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/; 
找到最接近错误标记627655136的一个position是627625631. 

再回到slave机器上change master, 将postion指向这个位置. 

mysql> stop slave; 
Query OK, 0 rows affected (0.00 sec) 

mysql> change master to master_log_file='mysql-bin.000288',master_log_pos=627625631; 
Query OK, 0 rows affected (0.06 sec) 

mysql> start slave; 
Query OK, 0 rows affected (0.00 sec) 
再次查看 

mysql> show slave status\G 
*************************** 1. row *************************** 
Slave_IO_State: Queueing master event to the relay log 
Master_Host: 192.168.21.105 
Master_User: rep 
Master_Port: 3306 
Connect_Retry: 10 
Master_Log_File: mysql-bin.000289 
Read_Master_Log_Pos: 25433767 
Relay_Log_File: mysql-relay-bin.000003 
Relay_Log_Pos: 630 
Relay_Master_Log_File: mysql-bin.000289 
Slave_IO_Running: Yes 
Slave_SQL_Running: Yes 
主从同步正常了, 同样的方法修复其它slave机器.
相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
SQL
记一次不常见到主从延迟问题
Slave_SQL_Running_State: Waiting for dependent transaction to commit 导致的主从延迟
8498 1
|
关系型数据库 MySQL 数据库
一文剖析MySQL主从复制异常错误代码13114
一文剖析MySQL主从复制异常错误代码13114
1811 0
|
Linux 网络安全 数据库
MyCat下载与安装
MyCat下载与安装
4040 0
|
SQL 关系型数据库 MySQL
MySQL集群-主从服务器搭建(一主多从)
MySQL集群-主从服务器搭建(一主多从)
1033 0
MySQL集群-主从服务器搭建(一主多从)
|
监控 开发工具
Zabbix自定义KEY报错ZBX_NOTSUPPORTED: Unsupported item key.
[root@zabbix bin]# ./zabbix_get -s 192.217.24.47 -k jump-server ZBX_NOTSUPPORTED: Unsupported item key.
10461 1
|
存储 关系型数据库 MySQL
MySQL主从复制原理和使用
本文介绍了MySQL主从复制的基本概念、原理及其实现方法,详细讲解了一主两从的架构设计,以及三种常见的复制模式(全同步、异步、半同步)的特点与适用场景。此外,文章还提供了Spring Boot环境下配置主从复制的具体代码示例,包括数据源配置、上下文切换、路由实现及切面编程等内容,帮助读者理解如何在实际项目中实现数据库的读写分离。
1698 1
MySQL主从复制原理和使用
|
数据可视化 关系型数据库 MySQL
【MySQL】MySQL8.0 创建用户及授权 - 看这篇就足够了
本文介绍了在MySQL 8.0+版本中创建和管理用户的详细步骤,包括通过命令行进入MySQL、创建数据库、用户及授权等操作,并提供了具体命令示例。适合初学者参考学习,帮助实现系统的权限管理和安全控制。
9059 3
【MySQL】MySQL8.0 创建用户及授权 - 看这篇就足够了
|
SQL 关系型数据库 MySQL
MySQL----配置双主双从
本文档详细介绍了如何在四台服务器上配置MySQL的双主双从架构。首先,通过关闭防火墙和SELinux确保网络通信畅通无阻。接着,设置各服务器的主机名和本地Host,确保名称解析正确。然后,通过YUM安装MySQL并修改初始密码。接下来,逐步配置四个节点(master01、master02、slave01、slave02),包括修改配置文件、创建用户和授权等步骤,实现主从复制。最后,通过SQL命令验证主从同步是否成功。
|
SQL 关系型数据库 MySQL
(二十五)MySQL主从实践篇:超详细版读写分离、双主热备架构搭建教学
在上篇《主从原理篇》中,基本上把主从复制原理、主从架构模式、数据同步方式、复制技术优化.....等各类细枝末节讲清楚了,本章则准备真正对聊到的几种主从模式落地实践,但实践的内容通常比较枯燥乏味,因为就是调整各种配置、设置各种参数等步骤。
2021 4
|
运维 关系型数据库 MySQL
【实操记录】MySQL主从配置
本文使用MySQL原生支持的主从同步机制,详细记录了配置步骤及运维操作方法,可供大家直接参考、使用。 本文假设已经部署了两台主机的MySQL软件,且数据库服务正常,详细部署步骤可本站搜索:"mysql二进制安装包部署"
1308 0