mysql:12838
From: SAKAI Kei <SAKAI Kei <sak@xxxxxxxxxx>>
Date: Mon, 06 Mar 2006 21:41:37 +0900
Subject: [mysql 12838] Re: mysqldumpの--hex-blobオプションにより「0x」
坂井です > --hex-blobオプションだけを使用した場合、列の値が空('')の時、 > ダンプファイルが「0x」となってしまいます。 既知のバグで、5.0.17 と 5.1.4-alpha で修正されています。 | - For binary string data types, mysqldump --hex-blob produced | an illegal output value of 0x rather than ''. | (Bug #13318 (http://bugs.mysql.com/13318)) --- | [2 Dec 2005 3:33] Jim Winstead | Fixed in 5.0.17 and 5.1.4. 4.1 では直さないんですかねぇ(^^;)。 以上 On Mon, 06 Mar 2006 21:14:29 +0900 a2cf@xxxxxxxxxx wrote: > atsushiです。 > いつも参考にさせていただいております。 > > mysqldumpの--hex-blobオプションについて不思議な動作がありました。 > --hex-blobオプションを使用したときに--extended-insertオプションと併用すれば問題ないのですが、--hex-blobオプションだけを使用した場合、列の値が空('')の時、ダンプファイルが「0x」となってしまいます。 > > > 「値が空('')の時の--hex-blobと--extended-insertの関係」 > ●共にオプションなし → OK(hexにはならない) > ●--hex-blobのみ → 「0x」となる。 > ● --hex-blobと--extended-insert → OK > ● --extended-insertのみ → OK(hexにはならない) > > > これは自分の使用方法に問題があるのでしょうか? > 詳細のテスト結果を以下に示します。 > なお、InnoDBでなくMyISAMでもNGでした。cp932をlatin1にしても同様でした。 > > > 何とぞよろしくお願いします。 > > > ######## 詳 細 ######## > > 環境: MySQL4.1.15 Linux (Standard, x86) 版 > > create database testdb; > use testdb; > > create table t1(c1 varchar(50)) engine = innodb default > character set = cp932; > > insert into t1 values('abc'); > insert into t1 values(''); > insert into t1 values(NULL); > insert into t1 values('def'); > > grant SELECT,LOCK TABLES > on *.* to bkupuser@localhost > identified by 'pass'; > > ●mysqldump --skip-opt -h localhost -u bkupuser --password=pass testdb t1 > dump_nohex_noextins.sql > →OK 元々は問題ない。 > INSERT INTO `t1` VALUES ('abc'); > INSERT INTO `t1` VALUES (''); > INSERT INTO `t1` VALUES (NULL); > INSERT INTO `t1` VALUES ('def'); > > ●mysqldump --skip-opt --hex-blob -h localhost -u bkupuser --password=pass testdb t1 > dump_withhex_noextins.sql > →NG --hex-blobだけでは0xとなる。 > INSERT INTO `t1` VALUES (0x616263); > INSERT INTO `t1` VALUES (0x); > INSERT INTO `t1` VALUES (NULL); > INSERT INTO `t1` VALUES (0x646566); > > ●mysqldump --skip-opt --hex-blob --extended-insert -h localhost -u bkupuser --password=pass testdb t1 > dump_withhex_withextins.sql > →OK --extended-insertがあれば問題ない。 > INSERT INTO `t1` VALUES (0x616263),(''),(NULL),(0x646566); > > ●mysqldump --skip-opt --extended-insert -h localhost -u bkupuser --password=pass testdb t1 > dump_nohex_withextins.sql > →OK --extended-insertだけでも問題ない。 > INSERT INTO `t1` VALUES ('abc'),(''),(NULL),('def'); > > > -- SAKAI Kei <sak@xxxxxxxxxx>
12837 2006-03-06 21:14 [<a2cf@xxxxxxxxxx> ] mysqldumpの--hex-blobオプションにより「0x」 -> 12838 2006-03-06 21:41 ┗[SAKAI Kei <sak@xxxxx] 12839 2006-03-07 08:32 ┗[<a2cf@xxxxxxxxxx> ]