search
LoginSignup
27

More than 5 years have passed since last update.

posted at

MYSQLのレプリケーション不整合を解決

今回は Slave_IO_Running: No の場合

スレーブ側で

mysql> SHOW SLAVE STATUS;

Slave_IO_Running: と Slave_SQL_Running: が両方とも YES になっていると、スレーブは問題なく動作していることになる。

しかしSlave_IO_RunningのみがNOになっている。どうしよう困った。

手順としてはレプリケーション側の情報をマスターの情報に全て書き変えてしまってSTART SLAVE;を行う。

まず最初にマスター側で

mysql> FLUSH TABLES WITH READ LOCK;
mysql> SHOW MASTER STATUS;

で表示された
FileとPositionの値を取っておく
例としてFile:mysql-bin.000003 | Position:3533033としておく

メモ取り終わったら

mysql> UNLOCK TABLES;

でロック解除

そしてマスターのDB情報をダンプ

$ mysqldump -u root -p master_db  > master_db.sql

ダンプしたsqlをスレーブに上書きする

$ mysql -u root -p slave_db < master_db.sql

スレーブ側で

mysql> STOP SLAVE;
mysql> CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000003',  MASTER_LOG_POS=3533033;
mysql> START SLAVE;
mysql> SHOW SLAVE STATUS;

これで直った

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
27