Road To Nowhere

主にWebまわりのエンジニア的なお仕事に関するようなことのあれこれ。

MySQL5.1レプリケーションの方式

MySQL 5.1
http://www.thinkit.co.jp/article/95/
http://www.thinkit.co.jp/article/95/1/3.html

レプリケーション フォーマットのセッティング
http://dev.mysql.com/doc/refman/5.1/ja/replication-formats-setting.html


レプリケーション方式には

がある。
UUID()とかNOW()とかレプリケーションができない記述をステートメントが含む時だけ、自動的にSBRからRBRへ切り替えるのがMIXED。

次のオプションを使って変更できる。

--binlog-format=(STATEMENT、ROW、MIXED)
  • MySQL 5.1.11 以前の場合は、SBRがデフォルト。
  • MySQL 5.1.12 以降の場合は、MIXEDがデフォルト。

ここまで見ると、MIXEDがいいように見えるんだけど、MySQL 5.1.29 になって再度SBRがデフォルト。
http://dev.mysql.com/doc/refman/5.1/en/news-5-1-29.html

Bugs fixed:
Incompatible Change: Replication: The default binary logging mode has been changed from MIXED to STATEMENT for compatibility with MySQL 5.0. (Bug#39812)

バグがあったようだ。