本地环境,在复制DDL的时候出现错误:
mysql 5.5.28-log> show slave status \G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 88.88.88.88
Master_User: replicate
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: testdbbinlog.000008
Read_Master_Log_Pos: 248851
Relay_Log_File: mysql-relay-bin.000003
Relay_Log_Pos: 210059
Relay_Master_Log_File: testdbbinlog.000008
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: 1091
Last_Error: Error 'Can't DROP 'OBJID'; check that column/key exists' on query. Default database: 'testdb'. Query: 'alter table operation drop column OBJID'
Skip_Counter: 0
Exec_Master_Log_Pos: 239462
Relay_Log_Space: 237442
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: NULL
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 1091
Last_SQL_Error: Error 'Can't DROP 'OBJID'; check that column/key exists' on query. Default database: 'testdb'. Query: 'alter table operation drop column OBJID'
Replicate_Ignore_Server_Ids:
Master_Server_Id: 1
1 row in set (0.00 sec)
mysql 5.5.28-log>
问题是因为部署之前,复制有问题,造成两边表结构不一致。然后重新执行(drop, then add)的时候,报错,字段不在。
先把错误号1091加入到“slave-skip-errors”,然后在target端执行:
set global SQL_SLAVE_SKIP_COUNTER=1;
slave start;
show slave status \G
正常工作。再次测试,OK。
参考URL:
http://dinglin.iteye.com/blog/1236330
MySQL小误区:关于set global sql_slave_skip_counter=N 命令的一些点
http://blog.itpub.net/22664653/viewspace-716764
【MySql】sql_slave_skip_counter 参数的用法解析