在兼职DBA的工作中,由于同事在数据库上误操作,导致数据库同步停止,情况如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
mysql>show slave status\G;
*************************** 1. row***************************
                Slave_IO_State: Waiting formaster to send event
                   Master_Host: 172.16.1.2
                   Master_User: rep
                   Master_Port: 3306
                 Connect_Retry: 60
               Master_Log_File: mysql-bin.000003
          Read_Master_Log_Pos: 641
                Relay_Log_File:mysqld-relay-bin.000004
                 Relay_Log_Pos: 251
        Relay_Master_Log_File: mysql-bin.000003
             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: 1007
                    Last_Error: Error  'Can' tcreate database  'butongbu' ; database exists ' on query. Default database:' butongbu '. Query: ' create database butongbu'
                  Skip_Counter: 0
          Exec_Master_Log_Pos: 550
               Relay_Log_Space: 643
               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: 1007      #错误代码1007
                Last_SQL_Error: Error  'Can' tcreate database  'butongbu' ; database exists ' on query. Default database: ' butongbu '.Query: ' create database butongbu'
1 row  in  set  (0.00 sec)

根据仔细分析,解决办法如下:

stopslave;

setglobal sql_slave_skip_counter=1;

startslave;