[前][次][番号順一覧][スレッド一覧]

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




[前][次][番号順一覧][スレッド一覧]