MySQLスレーブサーバのイメージを使ってスレーブサーバを複数台立てる際の注意点
今回MySQLでスレーブサーバのイメージから2台目のスレーブサーバを構築した際にI/O Fatalエラーに遭遇しました。
エラーが起きるまでの流れは以下になります。
- マスターサーバとレプリケーションを取っているスレーブサーバのイメージ(スナップショット)を取得
- スナップショットより2台目のスレーブサーバを起動
- my.cnf の server_id を他と被らない任意の番号に変更
- 2台目のスレーブサーバのMySQLを起動( start slave )
- I/O Fatalエラーが1台目のスレーブサーバで発生
1 2 3 |
mysql> show slave status¥G; A slave with the same server_uuid as this slave has connected to the master |
■原因と解決方法
エラーに書かれている通り、server_uuid が被っていることが原因で、/var/lib/mysql/auto.cnf を削除し MySQL を再起動することで解決します。
今回は MySQL 5.7 を使用していますが、 MySQL 5.6 より server_uuid が存在し、注意が必要とのこと。
また後から起動した方のスレーブサーバのレプリケーションが上手くいくようになっており、しばらく問題に気づかなかったので皆さんの参考になればと思います。