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

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>   ]