バイナリログ

MySQL5.0で実行しています。

バイナリログの一覧表示

mysql> SHOW MASTER LOGS;
+------------------+-----------+
| Log_name         | File_size |
+------------------+-----------+
| mysql-bin.000001 |        98 |
+------------------+-----------+
1 row in set (0.00 sec)

リセットした後だから少ない……

バイナリログの切り替え

mysql> FLUSH LOGS;
Query OK, 0 rows affected (0.05 sec)

mysql> SHOW MASTER LOGS;
+------------------+-----------+
| Log_name         | File_size |
+------------------+-----------+
| mysql-bin.000001 |       141 |
| mysql-bin.000002 |        98 |
+------------------+-----------+
2 rows in set (0.00 sec)

新しいバイナリログ mysql-bin.000002 が出来た。

バイナリログの内容表示

最新のバイナリログを表示
mysql> SHOW BINLOG EVENTS;
+------------------+-----+-------------+-----------+-------------+----------------------------------------------------+
| Log_name         | Pos | Event_type  | Server_id | End_log_pos | Info                                               |
+------------------+-----+-------------+-----------+-------------+----------------------------------------------------+
| mysql-bin.000001 |   4 | Format_desc |         1 |          98 | Server ver: 5.0.45-community-nt-log, Binlog ver: 4 |
+------------------+-----+-------------+-----------+-------------+----------------------------------------------------+
1 row in set (0.02 sec)
バイナリログを指定して表示
SHOW BINLOG EVENTS IN 'mysql-bin.000001';
FROM や LIMIT も使用できる
SHOW BINLOG EVENTS IN 'mysql-bin.000001' FROM 1;
SHOW BINLOG EVENTS IN 'mysql-bin.000001' LIMIT 2,3;

バイナリログの全削除

mysql> RESET MASTER;
Query OK, 0 rows affected (0.11 sec)

mysql> SHOW MASTER LOGS;
+------------------+-----------+
| Log_name         | File_size |
+------------------+-----------+
| mysql-bin.000001 |        98 |
+------------------+-----------+
1 row in set (0.00 sec)


部分的に削除したい場合は

指定したログ以前を削除
PURGE MASTER LOGS TO 'mysql-bin.000011';

mysql-bin.000011 より古いバイナリログを削除。
mysql-bin.000011 自体は削除されません。

指定した時刻以前のログを削除
PURGE MASTER LOGS BEFORE '2008-02-08 15:00:00';

指定された時刻の含まれるバイナリログより古いログを削除。
日時の含まれるバイナリログ自体は削除されません。

更新ログを出力するには

  • パラメータ「--log-update」を指定してMySQLを起動する
  • 設定ファイル my.cnf に「log_update」を設定する。

クエリログを出力するには

  • パラメータ「--log」を指定してMySQLを起動する
  • 設定ファイル my.cnf に「log」を設定する。

ログファイルは ホスト名.log です。
Windows の場合は c:/mysql/data/host.log でした。
以下は show tables したところ。

C:\mysql\bin\mysqld.exe, Version: 5.0.45-community-nt-log (MySQL Community Edition (GPL)). started with:
TCP Port: 3306, Named Pipe: /tmp/mysql.sock
Time                 Id Command    Argument
080208 21:27:04	      1 Connect     ODBC@ as anonymous on test
		      1 Query       show table
080208 21:27:06	      1 Query       s
e
080208 21:27:08	      1 Query       show tables