対象サーバについて
製品名 | OpenBlockS 600 |
OS(kernel ver) | Debian lenny(2.6.29) |
CPU | 600MHz(AMCC PowerPC 405EX) |
メモリ | 1GB(DDR2 SDRAM) |
ストレージ | 8GB(Compact Flash) |
はじめに
本サイトで使用しているMySQLバージョン:5.0.51a-24
MySQLレプリケーションは、特定のMySQLサーバのデータを更新すると他のMySQLサーバに更新結果を複製することができる技術です。複製元をマスタサーバ、複製先をスレーブサーバと呼びます。
具体的には、マスタサーバ側でMySQLのデータを更新すると、実行されたSQL文がバイナリログとしてスレーブサーバ側に転送され、同様に実行されます。
スレーブサーバに対するマスタサーバは1台ですが、マスタサーバに対するスレーブサーバは複数設定できます。そのため、更新処理を行うマスターサーバに対して参照処理を行うスレーブサーバを複数用意することで、参照処理を負荷分散させることができます。また、アクセス数増加に伴い、スレーブサーバを増やすことでスケールアウトが容易にできるという利点もあります。
マスタサーバを複数用意することで更新処理を負荷分散させるためにマルチマスタ構成というのも使われますが、その道のプロの方もお勧めしていませんので、気軽に手を出すと痛い目を見そうです。
MySQLレプリケーションの注意点
MySQLレプリケーションは設定が非常に簡単でデータベースを冗長化させることができ、処理も非常に軽いのでお勧めですが、いくつか注意点もあります。
- マスタサーバとスレーブサーバで差分が生じる可能性がある
マスタサーバはスレーブサーバ側でバイナリログが実行されるまで待つことなく自身のデータを更新し、スレーブサーバへの転送とスレーブサーバでの実行も非同期で行われるため、マスターで更新した結果が確実に即時スレーブに反映されているとは限りません。そのため、マスタサーバが更新された直後にdownすると、スレーブサーバにその更新結果が反映されていない可能性があります。
- ネットワークの冗長化は別途検討する必要がある
マスタ・スレーブサーバはそれぞれ別IPアドレスのため、マスタサーバ故障時に自動的にスレーブに接続させるにはアプリケーション側での工夫や他の冗長化技術との併用が必要になります。
- バックアップは別の手段を利用する
オペレーションミスでマスタサーバ側のデータを消してしまうと、当然スレーブ側のデータも消えてしまうことになるので、ある時点でのバックアップ取得も別の手段で用意しておく必要があります。
MySQLレプリケーションの設定
master:~# vi /etc/mysql/my.cnf [mysqld] server-id = 1 log_bin #bind-address = 127.0.0.1 bind-address = 172.0.0.2 slave:~# vi /etc/mysql/my.cnf [mysqld] server-id = 2 #bind-address = 127.0.0.1 bind-address = 172.0.0.3
server-idはマスタとスレーブで被らないように設定します。自宅サーバではアプリサーバとDBサーバを一台で兼用していたりするので、bind-addressに要注意です。
master:~# vi /etc/hosts.allow mysqld: 127.0.0.1 192.168.0.0/24 172.0.0.0/29 slave:~# vi /etc/hosts.allow mysqld: 127.0.0.1 192.168.0.0/24 172.0.0.0/29
TCPWrapperも開放しておきます。両方向の通信を考慮する必要がありますので両系に同じ設定を行います。
IPTABLESでフィルターしていないかも確認します。
設定変更後、再起動を行います。
master:~# /etc/init.d/mysql restart Stopping MySQL database server: mysqld. Starting MySQL database server: mysqld .. Checking for corrupt, not cleanly slaved and upgrade needing tables.. slave:~# /etc/init.d/mysql restart Stopping MySQL database server: mysqld. Starting MySQL database server: mysqld. Checking for corrupt, not cleanly slaved and upgrade needing tables..
確認
マスタサーバのデータディレクトリ
master:/var/lib/mysql# ls -al 合計 24 drwxr-xr-x 3 mysql mysql 4096 2011-04-10 03:09 . drwxr-xr-x 31 root root 4096 2011-04-03 23:31 .. -rw-r--r-- 1 root root 0 2011-04-03 23:31 debian-5.0.flag drwxr-xr-x 2 mysql root 4096 2011-04-03 23:31 mysql -rw------- 1 root root 7 2011-04-03 23:31 mysql_upgrade_info -rw-rw---- 1 mysql mysql 98 2011-04-10 03:09 mysqld-bin.000001 -rw-rw---- 1 mysql mysql 20 2011-04-10 03:09 mysqld-bin.index
バイナリログが出力されていることを確認します。
mysqld-bin.000001:バイナリログ
mysqld-bin.index:バイナリログファイルの一覧が記載されたファイル
バイナリログの確認
master:/var/lib/mysql# mysqlbinlog --no-defaults mysqld-bin.000001 /*!40019 SET @@session.max_insert_delayed_threads=0*/; /*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; DELIMITER /*!*/; # at 4 #110410 3:35:59 server id 1 end_log_pos 98 Start: binlog v 4, server v 5.0.51a-24+lenny5-log created 110410 3:35:59 at startup # Warning: this binlog was not closed properly. Most probably mysqld crashed writing it. ROLLBACK/*!*/; DELIMITER ; # End of log file ROLLBACK /* added by mysqlbinlog */; /*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
バイナリ形式なので、mysqlbinlogコマンドを使用して確認します。
スレーブサーバのデータディレクトリ
slave:/var/lib/mysql# ls -al 合計 20 drwxr-xr-x 4 mysql mysql 4096 2011-04-10 03:12 . drwxr-xr-x 24 root root 4096 2011-04-03 01:26 .. drwx------ 2 mysql mysql 4096 2011-04-03 02:58 application -rw-r--r-- 1 root root 0 2011-04-03 01:26 debian-5.0.flag drwxr-xr-x 2 mysql root 4096 2011-04-03 22:25 mysql -rw------- 1 root root 7 2011-04-03 01:27 mysql_upgrade_info
まだスレーブ設定していないため、現時点ではスレーブ関連のファイル(後述)はありません。
レプリケーションパラメータの確認(マスタ側)
master:/var/lib# mysql -uroot -p******** Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 29 Server version: 5.0.51a-24+lenny5-log (Debian) Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> SHOW VARIABLES LIKE 'server_id'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | server_id | 1 | +---------------+-------+ 1 row in set (0.00 sec) mysql> SHOW VARIABLES LIKE 'log_bin'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | log_bin | ON | +---------------+-------+ 1 row in set (0.00 sec)
my.cnfの通りであることを確認します。
レプリケーションパラメータの確認(スレーブ側)
slave:/usr/mysql-test# mysql -uroot -p******** Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 29 Server version: 5.0.51a-24+lenny5 (Debian) Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> SHOW VARIABLES LIKE 'server_id'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | server_id | 2 | +---------------+-------+ 1 row in set (0.00 sec) mysql> SHOW VARIABLES LIKE 'log_bin'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | log_bin | OFF | +---------------+-------+ 1 row in set (0.00 sec)
my.cnfの通りであることを確認します。
MASTER側にてREPLICATIONユーザ作成
master:/var/lib# mysql -uroot -p******** Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 30 Server version: 5.0.51a-24+lenny5-log (Debian) Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> GRANT REPLICATION SLAVE ON *.* TO 'replication'@'172.0.0.3' IDENTIFIED BY 'abcdefgh'; Query OK, 0 rows affected (0.00 sec)
スレーブサーバからマスタサーバに接続する際のユーザ「replication」PW「abcdefgh」を作成しました。権限は最低限「REPLICATION」のみを与えます。
バイナリログとポジション確認
mysql> show master status; +-------------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +-------------------+----------+--------------+------------------+ | mysqld-bin.000001 | 98 | | | +-------------------+----------+--------------+------------------+ 1 row in set (0.00 sec)
Fileはマスタサーバが現在書き込んでいるバイナリログのファイル名、Positionは現在までに書き込んだバイナリログの位置です。スレーブ側で上記の値を指定するため、メモしておきます。
マスタサーバのスレッド情報確認
mysql> show processlist\G *************************** 1. row *************************** Id: 29 User: root Host: localhost db: mysql Command: Query Time: 0 State: NULL Info: show processlist 1 row in set (0.00 sec)
現時点ではlocalhostからrootユーザでmysqlデータベースに接続しているスレッドのみしかありません。
スレーブ側の設定
slave:/usr/mysql-test# mysql -uroot -p******** Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 30 Server version: 5.0.51a-24+lenny5 (Debian) Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> show slave status; Empty set (0.00 sec) mysql> CHANGE MASTER TO MASTER_HOST = '172.0.0.2', -> MASTER_USER = 'replication', -> MASTER_PASSWORD = 'abcdefgh', -> MASTER_LOG_FILE = 'mysqld-bin.000001', -> MASTER_LOG_POS = 98 ; Query OK, 0 rows affected, 2 warnings (0.02 sec)
スレーブサーバで接続先のマスタサーバの情報を設定するためにCHANGE MASTER TOコマンドを実行しています。
MASTER_HOST | マスタサーバのIPアドレスまたはホスト名 |
MASTER_USER | 先ほどマスタサーバ側で作成したユーザ(REPLICATION SLAVE権限を持ったユーザ)を指定 |
MASTER_PASSWORD | replicationユーザのパスワード |
MASTER_LOG_FILE | レプリケーションを開始するバイナリログファイルを指定。先ほどマスタサーバ側で見たshow master statusの実行結果にあるFileを指定 |
MASTER_LOG_POS | 先ほどマスタサーバ側で見たshow master statusの実行結果にあるPositionを指定 |
ここで設定された内容はデータディレクトリのmaster.infoに保存されます。
mysql> start slave; Query OK, 0 rows affected (0.00 sec) mysql> quit Bye slave:/var/lib/mysql# ls -al 合計 36 drwxr-xr-x 4 mysql mysql 4096 2011-04-10 03:38 . drwxr-xr-x 24 root root 4096 2011-04-03 01:26 .. drwx------ 2 mysql mysql 4096 2011-04-03 02:58 application -rw-r--r-- 1 root root 0 2011-04-03 01:26 debian-5.0.flag -rw-rw---- 1 mysql mysql 74 2011-04-10 03:38 master.info drwxr-xr-x 2 mysql root 4096 2011-04-03 22:25 mysql -rw------- 1 root root 7 2011-04-03 01:27 mysql_upgrade_info -rw-rw---- 1 mysql mysql 236 2011-04-10 03:38 mysqld-relay-bin.000002 -rw-rw---- 1 mysql mysql 26 2011-04-10 03:38 mysqld-relay-bin.index -rw-rw---- 1 mysql mysql 51 2011-04-10 03:38 relay-log.info
新たにスレーブ関連のファイルが作成されました。
slave:/var/lib/mysql# less master.info 14 mysqld-bin.000001 98 172.0.0.2 replication abcdefgh 3306 60 0
※master.infoの書式はこちらを参照(MySQL5.1のマニュアルですが5.0も同じです)
以下に引用しておきます。
1 | ファイル内のライン番号 | |
2 | Master_Log_File | マスタのバイナリ ログ名。このログはその時点でマスタ側から読み込み中。 |
3 | Read_Master_Log_Pos | マスタのバイナリ ログ内の現在位置。その時点分のマスタの読み込みは完了している。 |
4 | Master_Host | マスタのホスト名 |
5 | Master_User | マスタに接続するためのユーザ名 |
6 | パスワード | マスタに接続するためのパスワード |
7 | Master_Port | マスタに接続するためのネットワーク ポート |
8 | Connect_Retry | インターバル時間(秒)。スレーブがマスタに再接続を試行する際に待機する時間 |
9 | Master_SSL_Allowed | サーバが SSL 接続をサポートするかどうかを示す |
slave:/var/lib/mysql# mysqlbinlog --no-defaults mysqld-relay-bin.000002 /*!40019 SET @@session.max_insert_delayed_threads=0*/; /*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; DELIMITER /*!*/; # at 4 #110410 3:38:48 server id 2 end_log_pos 98 Start: binlog v 4, server v 5.0.51a-24+lenny5 created 110410 3:38:48 # at 98 #700101 9:00:00 server id 1 end_log_pos 0 Rotate to mysqld-bin.000001 pos: 98 # at 142 #110410 3:35:59 server id 1 end_log_pos 0 Start: binlog v 4, server v 5.0.51a-24+lenny5-log created 110410 3:35:59 DELIMITER ; # End of log file ROLLBACK /* added by mysqlbinlog */; /*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/; slave:/var/lib/mysql# less mysqld-relay-bin.index ./mysqld-relay-bin.000002 slave:/var/lib/mysql# less relay-log.info ./mysqld-relay-bin.000002 236 mysqld-bin.000001 98
※relay-log.infoの書式はこちらを参照(MySQL5.1のマニュアルですが5.0も同じです)
以下に引用しておきます。
1 | Relay_Log_File | 現行のリレー ログ ファイル名 |
2 | Relay_Log_Pos | リレー ログ ファイル内の現在位置。この位置までのイベントはスレーブのデータベースで実行済み。 |
3 | Relay_Master_Log_File | マスタの (リレー ログ ファイルで読み取られたイベントの) バイナリ ログ ファイル名 |
4 | Exec_Master_Log_Pos | (既に実行されたイベントの) マスタのバイナリ ログ ファイル内の対応位置 |
確認
マスター側
mysql> show processlist\G *************************** 1. row *************************** Id: 29 User: root Host: localhost db: NULL Command: Query Time: 0 State: NULL Info: show processlist *************************** 2. row *************************** Id: 30 User: replication Host: slave.xxx.jp:45226 db: NULL Command: Binlog Dump Time: 136 State: Has sent all binlog to slave; waiting for binlog to be updated Info: NULL 2 rows in set (0.00 sec)
2. rowが増えました。
スレーブ側
mysql> show processlist\G *************************** 1. row *************************** Id: 32 User: system user Host: db: NULL Command: Connect Time: 151 State: Waiting for master to send event Info: NULL *************************** 2. row *************************** Id: 33 User: system user Host: db: NULL Command: Connect Time: 151 State: Has read all relay log; waiting for the slave I/O thread to update it Info: NULL *************************** 3. row *************************** Id: 34 User: root Host: localhost db: NULL Command: Query Time: 0 State: NULL Info: show processlist 3 rows in set (0.00 sec) mysql> show slave status\G *************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: 172.0.0.2 Master_User: replication Master_Port: 3306 Connect_Retry: 60 Master_Log_File: mysqld-bin.000001 Read_Master_Log_Pos: 98 Relay_Log_File: mysqld-relay-bin.000002 Relay_Log_Pos: 236 Relay_Master_Log_File: mysqld-bin.000001 Slave_IO_Running: Yes Slave_SQL_Running: Yes Replicate_Do_DB: Replicate_Ignore_DB: Replicate_Do_Table: Replicate_Ignore_Table: Replicate_Wild_Do_Table: Replicate_Wild_Ignore_Table: Last_Errno: 0 Last_Error: Skip_Counter: 0 Exec_Master_Log_Pos: 98 Relay_Log_Space: 236 Until_Condition: None Until_Log_File: Until_Log_Pos: 0 Master_SSL_Allowed: No Master_SSL_CA_File: Master_SSL_CA_Path: Master_SSL_Cert: Master_SSL_Cipher: Master_SSL_Key: Seconds_Behind_Master: 0 1 row in set (0.01 sec)
上記ピンクの箇所がYesになっているので、SQLスレッドとI/Oスレッドが正常に動作しています。
レプリケーション試験
マスター側
mysql> create database test; Query OK, 1 row affected (0.00 sec) mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | test | +--------------------+ 3 rows in set (0.00 sec)
マスター側にデータベースtestを作成しました。
スレーブ側
mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | test | +--------------------+ 3 rows in set (0.00 sec)
スレーブ側では何もしていないのにデータベースtestが作成されています。
マスター側
mysql> use test; Database changed mysql> show tables; Empty set (0.00 sec)
次は、データベースの中身(テーブル、データ)がレプリケーションされるか確認します。
上記時点ではまだ空っぽです。
スレーブ側
mysql> use test; Database changed mysql> show tables; Empty set (0.00 sec)
マスター側
mysql> CREATE TABLE test (id int(5)); ERROR 1105 (HY000): MyISAM table 'test' is in use (most likely by a MERGE table). Try FLUSH TABLES. mysql> show tables; Empty set (0.01 sec) mysql> FLUSH TABLES; Query OK, 0 rows affected (0.00 sec) mysql> CREATE TABLE test (id int(5)); Query OK, 0 rows affected (0.01 sec) mysql> INSERT INTO test VALUES(1), (2), (3); Query OK, 3 rows affected (0.01 sec) Records: 3 Duplicates: 0 Warnings: 0 mysql> select * from test; +------+ | id | +------+ | 1 | | 2 | | 3 | +------+ 3 rows in set (0.01 sec)
スレーブ側
mysql> show tables; +----------------+ | Tables_in_test | +----------------+ | test | +----------------+ 1 row in set (0.00 sec) mysql> select * from test; +------+ | id | +------+ | 1 | | 2 | | 3 | +------+ 3 rows in set (0.00 sec)
テーブルとデータもコピーされました。
ファイルの確認
最後に現時点での各ファイルの値の変化を確認して終了します。
マスター側
master:/var/lib/mysql# less mysqld-bin.index ./mysqld-bin.000001 master:/var/lib/mysql# mysqlbinlog --no-defaults mysqld-bin.000001 /*!40019 SET @@session.max_insert_delayed_threads=0*/; /*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; DELIMITER /*!*/; # at 4 #110410 3:35:59 server id 1 end_log_pos 98 Start: binlog v 4, server v 5.0.51a-24+lenny5-log created 110410 3:35:59 at startup # Warning: this binlog was not closed properly. Most probably mysqld crashed writing it. ROLLBACK/*!*/; # at 98 #110410 3:41:54 server id 1 end_log_pos 181 Query thread_id=29 exec_time=0 error_code=0 SET TIMESTAMP=1302374514/*!*/; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1/*!*/; SET @@session.sql_mode=0/*!*/; /*!\C utf8 *//*!*/; SET @@session.character_set_client=33,@@session.collation_connection=33,@@session.collation_server=33/*!*/; create database test/*!*/; # at 181 #110410 3:43:20 server id 1 end_log_pos 256 Query thread_id=29 exec_time=0 error_code=0 use test/*!*/; SET TIMESTAMP=1302374600/*!*/; FLUSH TABLES/*!*/; # at 256 #110410 3:43:23 server id 1 end_log_pos 348 Query thread_id=29 exec_time=0 error_code=0 SET TIMESTAMP=1302374603/*!*/; CREATE TABLE test (id int(5))/*!*/; # at 348 #110410 3:43:31 server id 1 end_log_pos 447 Query thread_id=29 exec_time=0 error_code=0 SET TIMESTAMP=1302374611/*!*/; INSERT INTO test VALUES(1), (2), (3)/*!*/; DELIMITER ; # End of log file ROLLBACK /* added by mysqlbinlog */; /*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
スレーブ側
mysql> show slave status\G *************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: 172.0.0.2 Master_User: replication Master_Port: 3306 Connect_Retry: 60 Master_Log_File: mysqld-bin.000001 Read_Master_Log_Pos: 447 Relay_Log_File: mysqld-relay-bin.000002 Relay_Log_Pos: 585 Relay_Master_Log_File: mysqld-bin.000001 Slave_IO_Running: Yes Slave_SQL_Running: Yes Replicate_Do_DB: Replicate_Ignore_DB: Replicate_Do_Table: Replicate_Ignore_Table: Replicate_Wild_Do_Table: Replicate_Wild_Ignore_Table: Last_Errno: 0 Last_Error: Skip_Counter: 0 Exec_Master_Log_Pos: 447 Relay_Log_Space: 585 Until_Condition: None Until_Log_File: Until_Log_Pos: 0 Master_SSL_Allowed: No Master_SSL_CA_File: Master_SSL_CA_Path: Master_SSL_Cert: Master_SSL_Cipher: Master_SSL_Key: Seconds_Behind_Master: 0 1 row in set (0.00 sec) mysql> quit Bye slave:/var/lib/mysql# ls -al 合計 40 drwxr-xr-x 5 mysql mysql 4096 2011-04-10 03:41 . drwxr-xr-x 24 root root 4096 2011-04-03 01:26 .. drwx------ 2 mysql mysql 4096 2011-04-03 02:58 application -rw-r--r-- 1 root root 0 2011-04-03 01:26 debian-5.0.flag -rw-rw---- 1 mysql mysql 75 2011-04-10 03:43 master.info drwxr-xr-x 2 mysql root 4096 2011-04-03 22:25 mysql -rw------- 1 root root 7 2011-04-03 01:27 mysql_upgrade_info -rw-rw---- 1 mysql mysql 585 2011-04-10 03:43 mysqld-relay-bin.000002 -rw-rw---- 1 mysql mysql 26 2011-04-10 03:38 mysqld-relay-bin.index -rw-rw---- 1 mysql mysql 52 2011-04-10 03:43 relay-log.info drwx------ 2 mysql mysql 4096 2011-04-10 03:43 test slave:/var/lib/mysql# less master.info 14 mysqld-bin.000001 447 172.0.0.2 replication abcdefgh 3306 60 0 slave:/var/lib/mysql# less relay-log.info ./mysqld-relay-bin.000002 585 mysqld-bin.000001 447 slave:/var/lib/mysql# less mysqld-relay-bin.index ./mysqld-relay-bin.000002 slave:/var/lib/mysql# mysqlbinlog --no-defaults mysqld-relay-bin.000002 /*!40019 SET @@session.max_insert_delayed_threads=0*/; /*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; DELIMITER /*!*/; # at 4 #110410 3:38:48 server id 2 end_log_pos 98 Start: binlog v 4, server v 5.0.51a-24+lenny5 created 110410 3:38:48 # at 98 #700101 9:00:00 server id 1 end_log_pos 0 Rotate to mysqld-bin.000001 pos: 98 # at 142 #110410 3:35:59 server id 1 end_log_pos 0 Start: binlog v 4, server v 5.0.51a-24+lenny5-log created 110410 3:35:59 # at 236 #110410 3:41:54 server id 1 end_log_pos 181 Query thread_id=29 exec_time=0 error_code=0 SET TIMESTAMP=1302374514/*!*/; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1/*!*/; SET @@session.sql_mode=0/*!*/; /*!\C utf8 *//*!*/; SET @@session.character_set_client=33,@@session.collation_connection=33,@@session.collation_server=33/*!*/; create database test/*!*/; # at 319 #110410 3:43:20 server id 1 end_log_pos 256 Query thread_id=29 exec_time=0 error_code=0 use test/*!*/; SET TIMESTAMP=1302374600/*!*/; FLUSH TABLES/*!*/; # at 394 #110410 3:43:23 server id 1 end_log_pos 348 Query thread_id=29 exec_time=0 error_code=0 SET TIMESTAMP=1302374603/*!*/; CREATE TABLE test (id int(5))/*!*/; # at 486 #110410 3:43:31 server id 1 end_log_pos 447 Query thread_id=29 exec_time=0 error_code=0 SET TIMESTAMP=1302374611/*!*/; INSERT INTO test VALUES(1), (2), (3)/*!*/; DELIMITER ; # End of log file ROLLBACK /* added by mysqlbinlog */; /*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;