進入MySQL的slave服務器後,查看slave狀態:mysql
mysql> show slave status \G *************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: 192.168.6.120 Master_User: repl Master_Port: 3306 Connect_Retry: 60 Master_Log_File: zhangjin1.000001 Read_Master_Log_Pos: 1320277 Relay_Log_File: jin-123-relay-bin.000002 Relay_Log_Pos: 283 Relay_Master_Log_File: zhangjin1.000001 Slave_IO_Running: Yes Slave_SQL_Running: No Replicate_Do_DB: Replicate_Ignore_DB:
能夠看到,Slave_SQL_Running的狀態是No,緣由通常可能有兩種:sql
一、程序可能在slave上進行了寫操做。服務器
二、多是slave機器重啓後,事務回滾形成的。code
通常狀況下,是事務回滾形成的。事務
解決方法以下:it
GLOBAL SQL_SLAVE_SKIP_COUNTER=1; start slave; Query OK, 0 rows affected (36.89 sec) mysql> set GLOBAL SQL_SLAVE_SKIP_COUNTER=1; Query OK, 0 rows affected (0.01 sec) mysql> start slave; Query OK, 0 rows affected (1.91 sec)
再查看slave服務器狀態:event
mysql> show slave status \G *************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: 192.168.6.120 Master_User: repl Master_Port: 3306 Connect_Retry: 60 Master_Log_File: zhangjin1.000001 Read_Master_Log_Pos: 1320277 Relay_Log_File: jin-123-relay-bin.000003 Relay_Log_Pos: 283 Relay_Master_Log_File: zhangjin1.000001 Slave_IO_Running: Yes Slave_SQL_Running: Yes Replicate_Do_DB: Replicate_Ignore_DB:
能夠看到,Slave_SQL_Running的狀態也是Yes了。ast