レプリケーション初体験
MySQLのレプリケーションを試してみました。
マスタのOS:Debian sarge
スレーブのOS:FedoraCore3
※どっちもVMWare上で動いている
やっぱ最初はエラーでスタート!
こんなエラーがエラーログに出ました。
[ERROR] The slave I/O thread stops because master and slave have different values for the COLLATION_SERVER global variable. The values must be equal for replication to work
システム変数COLLATION_SERVERが一致してないと。
show variables;
でみてみたら、
マスタのCOLLATION_SERVERがutf8_general_ciで、スレーブはlatin1_swedish_ciになってた。
そこで、マスタ・スレーブともにmy.cnfに
default-character-set=utf8
を書き書き。
めでたくレプリケーションが動き、データがマスタ->スレーブに反映されていることを確認できました。
教訓
レプリケーションが動いてないときは
- エラーログをみる
- show processlist\Gを打って確認する(レプリケーションが動いているときはUser:system userのrowが2つ出ている)