その場合の対処方法。
show slave status\G;
で、エラーになっているSQLが見える。
Last_Errno: 1050
Last_Error: Error 'Table 'HOGE_TBL' already exists' on query. Default database: 'foo_db'. Query: 'CREATE TABLE HOGE_TBL
(
ID BIGINT NOT NULL AUTO_INCREMENT COMMENT 'ID',
そんな時に以下のコマンドで、 SQL実行をスキップする。
SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1;
一気に複数のDDLを流してしまったら、ひたすら以下を繰り返していけばよい。
1つずつスキップしていくのが確認できる。
stop slave;
SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1;
start slave;
show slave status\G;
最終的に
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
に戻ればOK。
初めての対応だったので覚えておこう。
【関連する記事】