コミット情報が記載されています。
バイナリログには、テーブル作成操作やテーブルデータへの変更などのデータベース変更を記述する「イベント」が格納されます。 また、行ベースのロギングが使用される場合を除き、(一致する行のない DELETE などの) 潜在的に変更を行おうとしたステートメントについてのイベントも格納されます。 バイナリログには、データを更新した各ステートメントに要した時間に関する情報も格納されます。
ref. 5.4.4 バイナリログ
具体的にはおもに以下の内容を格納します。
バイナリログは名前のとおりバイナリ形式なので人間が読む場合は mysqlbinlog コマンドなどでデコードする必要があります。
log_bin にバイナリログのプレフィックスを指定すると有効になります。 MySQL 8.0 以降はデフォルトで有効でプレフィックスのデフォルトは binlog です。
以前の MySQL バージョンでは、バイナリロギングはデフォルトで無効になっており、--log-bin オプションを指定した場合は有効になっていました。 MySQL 8.0 からは、--log-bin オプションを指定するかどうかにかかわらず、バイナリロギングはデフォルトで有効になっています。 例外は、バイナリロギングがデフォルトで無効になっている場合に、mysqld を使用して --initialize または --initialize-insecure オプションを指定してデータディレクトリを手動で呼び出すことによって、データディレクトリを初期化する場合です。 この場合、--log-bin オプションを指定することでバイナリロギングを有効にできます。 バイナリロギングが有効になっている場合、サーバー上のバイナリロギングのステータスを示す log_bin システム変数は ON に設定されます。
ref. https://dev.mysql.com/doc/refman/8.0/ja/replication-options-binary-log.htm
以下コマンドで確認できます。
show binary logs;
select @@datadir;
( Debian は /var/lib/mysql )mysql> show binary logs;
+---------------+-----------+-----------+
| Log_name | File_size | Encrypted |
+---------------+-----------+-----------+
| binlog.000001 | 2940689 | No |
| binlog.000002 | 157 | No |
+---------------+-----------+-----------+
mysql> select @@datadir;
+-----------------+
| @@datadir |
+-----------------+
| /var/lib/mysql/ |
+-----------------+
1 row in set (0.01 sec)
バイナリログはデフォルトはデータディレクトリ( select @@datadir;
の値)の直下に作成されます。
例)
データディレクトリパス( select @@datadir ) | 最新のバイナリログ名( show binary logs ) | 最新のバイナリログパス |
---|---|---|
/var/lib/mysql | binlog.000001 | /var/lib/mysql/binlog.000001 |
/var/lib/mysql | binlog.000002 | /var/lib/mysql/binlog.000002 |
バイナリログは保存形式を bin_logformat で指定します。
binlog_format: ( STATEMENT | MIXED | ROW )