バイナリログの先頭と末尾を作成しようとしていますが、不足しています。 mysqlbinlogから次のようなエントリがたくさんありますが、そこにあるはずのログデータがありません。
# at 1050548
#130617 18:40:03 server id 1 end_log_pos 1050619 Query thread_id=844988 exec_time=0 error_code=0
SET TIMESTAMP=1371519603/*!*/;
BEGIN
/*!*/;
# at 1050619
# at 1050782
#130617 18:40:03 server id 1 end_log_pos 1050809 Xid = 33121028
COMMIT/*!*/;
Phpmyadminで実行されたステートメントのmysqlbinlog出力で期待されるSQLを取得しますが、他のPHPベースのリモートWebサーバーからのステートメントは記録されていないように見えるため、不可解です。
私の設定ビンロギングは次のとおりです。
bin_log = /path_to_sql_incrementals
binlog_ignore_db = mysql
ロギングオプションがありませんか?
Mysql 5.0.95/CentOS 5.9
更新クエリで直接database.table構文を使用すると、MySQLはバイナリログファイルにログを記録しません(例:UPDATE Foo.Bar SET ...)。私のWebアプリケーションはデフォルトのデータベースを指定しないため、データがログに記録されることはありません。
http://dev.mysql.com/doc/refman/5.0/en/replication-rules-db-options.html
INSERTおよびUPDATEクエリの前にmysql_select_dbを呼び出す問題を解決しました。
--base64-output=decode-rows
および--verbose
オプションをmysqlbinlog
とともに使用する必要があります。そうしないと、ログにあるすべてのものが常に表示されるとは限りません。
構成からbinlog_ignore_db
を削除することも検討する必要があります。これは、mysql
スキーマへの変更のログ記録を防ぐだけでなく、USE mysql
方法のためにUSE
別のデータベースまで 複製ルールが解釈されます 。