Mysql GTID复制报错处理:Last_Error: Error 'Can't drop database 'test'; database doesn't
报错显示:
Slave_IO_Running: Yes Slave_SQL_Running: No Last_Error: Error 'Can't drop database 'test'; database doesn't exist' on query. Default database: 'test'. Query: 'drop database test' Retrieved_Gtid_Set: 988b8684-3e21-22e6-a801-24505689c77d:1-9 Executed_Gtid_Set: 查看主库上的binlog日志,查找drop database test相关的日志: # at 151 #160630 1:55:19 server id 623306 end_log_pos 199 CRC32 0x5954bb4c GTID [commit=yes] SET @@SESSION.GTID_NEXT= '988b8684-3e21-22e6-a801-24505689c77d:1'/*!*/; # at 199 #160630 1:55:19 server id 623306 end_log_pos 284 CRC32 0x6db10369 Query thread_id=1 exec_time=0 error_code=0 SET TIMESTAMP=1467222919/*!*/; SET @@session.pseudo_thread_id=1/*!*/; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/; SET @@session.sql_mode=1073741824/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C utf8 *//*!*/; SET @@session.character_set_client=83,@@session.collation_connection=83,@@session.collation_server=83/*!*/; SET @@session.lc_time_names=0/*!*/; SET @@session.collation_database=DEFAULT/*!*/; drop database test /*!*/; 问题找到了,drop database test对应的事务号是1,接下来就简单了,按如下操作执行: mysql> stop slave; Query OK, 0 rows affected (0.00 sec) mysql> set gtid_next="988b8684-3e21-22e6-a801-24505689c77d:1"; Query OK, 0 rows affected (0.00 sec) mysql> begin;commit; Query OK, 0 rows affected (0.00 sec) Query OK, 0 rows affected (0.01 sec) mysql> set gtid_next="AUTOMATIC"; Query OK, 0 rows affected (0.00 sec) mysql> start slave; Query OK, 0 rows affected (0.00 sec) 查看结果:
mysql> show slave status\G Slave_IO_Running: Yes Slave_SQL_Running: Yes Retrieved_Gtid_Set: 988b8684-3e21-22e6-a801-24505689c77d:1-9 Executed_Gtid_Set: 988b8684-3e21-22e6-a801-24505689c77d:1-9
