Binary logging not possible. Message: %s
提供:MySQL Practice Wiki
エラー概要
| MySQLエラー番号 | 1598 |
| SQLSTATE | HY000 |
| エラー名 | ER_BINLOG_LOGGING_IMPOSSIBLE |
| メッセージ | Binary logging not possible. Message: %s |
| 障害部位 | mysqld |
| 該当バージョン | 5.1+ |
| エラーの原因 | 以下を参照。 |
| 対策 | 以下を参照。 |
| 備考 | nada |
原因
バイナリログは、MySQLサーバに対して行われた更新を格納するログであるが、順番に更新を格納しないとデータの整合性がとれない場合がある。MySQL 5.1ではこれまでのステートメントベースレプリケーション(SBR)に加えて行ベースレプリケーション(RBR)が追加されたが、特に既存のSBRでは更新の整合性を保つのが難しいといった問題がある。
分離レベルがREAD COMMITTEDの場合、または--innodb-locks-unsafe-for-binlogオプションが利用されている場合、MySQL 5.1ではRBRを利用しなくてはならない。SBRでは整合性を取るのが難しいからだ。従って、クライアントに返されるメッセージは次のようになる。
Transaction level 'READ-COMMITTED' in InnoDB is not safe for binlog mode 'STATEMENT'
その他のパターンとしては次のものがある。
Statement cannot be logged to the binary log in row-based nor statement-based format Statement-based format required for this statement, but not allowed by this combination of engines Row-based format required for this statement, but not allowed by this combination of engines
対処法
行ベースレプリケーションまたはミクスドモードレプリケーションを使う。