MySQL主从同步各类型故障总结

本文总结了MySQL主从同步过程中遇到的各种错误及其解决方案,包括权限问题、配置文件损坏、表结构不一致、数据冲突等。解决方法包括检查用户权限、重置主从配置、跳过错误事件、修复表结构等,旨在帮助维护数据库主从同步的稳定性。
摘要由CSDN通过智能技术生成

主从同步故障总结

错误一

[ERROR] Slave I/O: error connecting to master 'replication@VMS00782:3306' - retry-time: 60 retries: 2, Error_code: 1045

错误原因:从库用来连接主库的用户权限或者密码不对

解决方法:首先在主库上检查用来主从复制的用户权限,如果没有问题在检查从库使用的密码是否正确。


错误二

140331 10:08:18 [ERROR] Error reading master configuration

140331 10:08:18 [ERROR] Failed to initialize the master info structure

140331 10:08:18 [Note] Event Scheduler: Loaded 0 events

错误原因:这个可能是从库的master.info文件有损坏。

解决方法:reset slave


错误三

Error 'Duplicate entry '1' for key 1' on query. Default database: 'movivi1'. Query: 'INSERT INTO `v1vid0_user_samename` VALUES(null,1,'123','11','4545','123')'

错误原因:可能是从库的约束比主库更多写造成的。

解决方法:

Mysql > stop slave;

Mysql > set global sql_slave_skip_counter =1 ;

Mysql > start slave;



错误四

Last_SQL_Errno: 1054

Error 'Unknown column 'qdir' in 'field list'' on query. Default database: 'club'. Query: 'insert into club.question_del (id, pid, ques_name, givepoint, title, subject, subject_pid, createtime, approve, did, status, intime, order_d, endtime,banzhu_uid,banzhu_uname,del_cause,qdir) select id, pid, ques_name, givepoint, title, subject, subject_pid, createtime, approve, did, status, intime, order_d, endtime,'1521859','admin0523','无意义回复',qdir from club.question where id=7330212'

1 row in set (0.00 sec)

错误原因:从库上对应的表上缺少字段。

解决方法:stop slave,然后根据主库上表结构,在从库对应表上添加缺少的字段,然后start slave。



错误五

Error_code: 1146

Slave SQL: Error 'Table 'xxxx' doesn't exist' on query. Default database: 't591'. Query: 'INSERT INTO `xxxx`(type,post_id,browsenum) SELECT type,post_id,browsenum FROM xxxx WHERE hitdate='20090209'', Error_code: 1146

错误原因:slave上缺少错误中的表。

解决方法:在slave上添加上对应的表,然后start slave。

或者跳过该错误,详见错误六。


错误六

mysql> show slave status\G

*************************** 1. row ***************************

......

Connect_Retry: 60

Slave_IO_Running: Yes

Slave_SQL_Running: No

Replicate_Do_DB:

Replicate_Ignore_DB:

Replicate_Do_Table:

Replicate_Ignore_Table:

Replicate_Wild_Do_Table:

Replicate_Wild_Ignore_Table:

Last_Errno: 1146

Last_Error: Error executing row event:Table 'wxjzl.spzp_wxjz_weixin_user_subscribe_record' doesn't exist

Skip_Counter: 0

Exec_Master_Log_Pos: 2159824

Relay_Log_Space: 274866725

错误原因:主库删除的表在从库中不存在,导致从库在遇到删除不存在表的错误时无法继续同步。

解决方法:利用slave-skip-errors参数,跳过对于的1146错误(这个参数是一个只读的,需要在配置文件中修改,并重启从库)

1、在my.cnf 的[mysqld] 下面添加 slave_skip_errors=1146

2、重启从库 service mysql restart

3、在从库上启动同步

mysql> start slave ;

Query OK, 0 rows affected (0.01 sec)

mysql> show slave status\G

*************************** 1. row ***************************

......

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

......

Exec_Master_Log_Pos: 137438808

Relay_Log_Space: 274867275

......

Seconds_Behind_Master: 88484

Master_SSL_Verify_Server_Cert: No

Last_IO_Errno: 0

Last_IO_Error:

Last_SQL_Errno: 0

Last_SQL_Error:

......

4、去掉my.cnf中的slave_skip_errors=1146

5、重启从库

6、启动从库复制。


错误7

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值