在兼职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;