BINLOG_FORMAT = STATEMENTおよび少なくとも1つのテーブルは、ストレージエンジン限らに行ベースのログを使用していますので、バイナリログへの書き込みが不可能:文を実行することはできません。InnoDBは、行ロギングのために制限されています

 

 1665  - ステートメントを実行できません:バイナリログへの書き込みが不可能BINLOG_FORMAT =ステートメントと少なくとも1つのテーブルは、ストレージエンジン限定に行ベースのログを使用するため。 
InnoDBは、行ロギングをするトランザクション分離レベルは、コミットまたはREAD UNCOMMITTED読み取られるとき制限されます。

 

 

 

環境

Tomcatの6.xの

JDK 1.6

mysql5.5

 

異常な

クエリJDBCを実行するときに例外がスローされます。

BINLOG_FORMAT = STATEMENTおよび少なくとも1つのテーブルは、ストレージエンジン限らに行ベースのログを使用していますので、バイナリログへの書き込みが不可能:文を実行することはできません。InnoDBは、行ロギングをするトランザクション分離レベルは、コミットまたはREAD UNCOMMITTED読み取られるとき制限されます。

 

原因と解決策

これは、MySQLが必要です。

ステートメントベースbinloggingは分離レベルでは動作しない
READ UNCOMMITTED、必要なのでCOMMITTED READ
ロックを取ることができません。

Tomcatによると、読み取りがコミットしたときに、トランザクション・レベルを示唆し、例外をスローし、コミットされていない読んbinlogの行形式に設定する必要があります。

これは、限定セットのJavaは、Javaのデフォルトのトランザクションレベルがコミット読み込まれ、binlog_formatのMySQLのデフォルト設定=ステートメント。

混合binlog_formatセット

=混合グローバルbinlog_formatを設定します。

時間が経つにつれて、異常はまだです!

行セット

グローバルbinlog_format =行を設定します。

問題は解決します!

または:

MySQLの>のSET SESSIONのbinlog_format = 'ROW';

MySQLの> GLOBAL binlog_format = 'ROW' を設定します。

注意:手動で変更するな/etc/my.cnf Linuxは、以下の場合:binlog_format =行、MySQLを再起動する必要があります。

 

 https://www.iteye.com/blog/javawangbaofeng-2243306

 

おすすめ

転載: www.cnblogs.com/softidea/p/11429225.html