mysql:14410
From: "Nobukazu Echizenya" <"Nobukazu Echizenya" <echizenya.nbb@xxxxxxxxxx>>
Date: Mon, 10 Mar 2008 22:05:23 +0900
Subject: [mysql 14410] バイナリログにデータベース切り替え(use)が出力されない
いつもお世話になっております。 バイナリログに関する質問です。 下記のtempデータベースをmysqldumpによって、バックアップしました。 DB:temp temp内のテーブル:T_TEST mysqldumpのオプション default-character-set = ujis flush-log single-transaction master-data = 2 quick add-locks extended-insert add-drop-database ダンプファイルの内容を要約すると 1 drop database if exists temp; 2 create database temp character set ujis; 3 use temp 4 create table T_TEST(C_UID varchar(10)) engine=InnoDB default charset=ujis; となります。 このダンプファイルをリダイレクトで2回実行する。 mysql < ダンプファイル ←2回 2回実行しているので、 1 drop database if exists temp; 2 create database temp character set ujis; 3 use temp 4 create table T_TEST(C_UID varchar(10)) engine=InnoDB default charset=ujis; 5 drop database if exists temp; 6 create database temp character set ujis; 7 use temp 8 create table T_TEST(C_UID varchar(10)) engine=InnoDB default charset=ujis; の8つのSQLが実行されたことになります。 しかし、バイナリログをみると、7行目のuse tempが出力されていません。 そのためバイナリログを mysqlbinlog my_binlog.000001 | mysql のように実行すると、 ERROR 1046 (3D000) at line 35: No database selected となってしまいます。 回避する方法として 1.drop database後のuse データベースをバイナリログへ出力する方法 2.mysqldump出力時のcreate table にデータベース名を追記する方法 があるかと探してみましたが、今のところ探しきれていません。 どなたかよい回避策をご存知の方いらっしゃるでしょうか? mysqlバージョン:5.0.45 OS:Solaris 10