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

mysql:14287

From: "kondo" <"kondo" <nobuaki3.kondo@xxxxxxxxxx>>
Date: Thu, 1 Nov 2007 13:11:55 +0900
Subject: [mysql 14287] mysqldumpでDEFAULT CHARSET=latin1になってしまう。

近藤です。
初めての投稿になります。

サーバのリプレースでEUCの環境からUTF-8になるため、
PHPで作ったシステムがUTF-8の環境で使えるか確認中です。
PHPからとりあえず使えてるっぽいのですが、バックアップでちょっと
戸惑ってます。
Redhat9の環境からmysqldumpで得たファイルをEUCからUTF-8に
変換して新しい環境(実環境はRedHatEL4ですが、テスト環境なので
VMWareのCentoOS4.5)に持っていき、インポートしました。

CentOSにログインし、コマンドラインからmysqlコマンドでアクセスし、
selectコマンドでデータを見てみると、日本語部分のデータが文字化
けせずに表示されました。
UTF-8で文字化けせずに表示されたことだと思います。
改めてCentOSでmysqldumpすると、
CREATE TABLEの最後の部分がENGINE=MyISAM DEFAULT CHARSET=latin1;
になとなり、日本語の部分が文字化けしました。
(最初のインポートする際のdumpだとCREATE TABLEの最後はTYPE=MyISAM;のみ)

インターネットや、このMLの過去ログなどを探して
[mysqldump]
default-character-set=binary
とすることで、日本語部分の文字化けはなくなりましたが、あいかわらず
CREATE TABLEの最後の部分がENGINE=MyISAM DEFAULT CHARSET=latin1;
です。
mysqldumpのオプションに--compatible=mysql323を指定すると最初のインポートと
同様にTYPE=MyISAM;のみになりました。
ENGINE=MyISAM DEFAULT CHARSET=UTF-8することって出来ないでしょうか?
ENGINE=MyISAM DEFAULT CHARSET=UTF-8にする必要は特に無いでしょうか。

よろしくお願いします。

以下は、必要かと思われる情報を載せておきます。

移行前:RedHat9
Mysql3.23.58-1.9
<my.cnf>
--------------------------------------------
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

[mysql.server]
user=mysql
basedir=/var/lib

[safe_mysqld]
err-log=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
--------------------------------------------

移行先:CentOS4.5
mysqlclient10-3.23.58-4.RHEL4.1
mysql-4.1.20-2.RHEL4.1.0.1
mysql-devel-4.1.20-2.RHEL4.1.0.1
libdbi-dbd-mysql-0.6.5-10.RHEL4.1
php-mysql-4.3.9-3.22.9
mysql-server-4.1.20-2.RHEL4.1.0.1

<my.cnfの一部>
--------------------------------------------
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1
default-character-set=utf8<−−−追加しました

[mysql.server]
user=mysql
basedir=/var/lib
default-character-set=utf8

[mysqld_safe]
err-log=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
default-character-set=utf8<−−−追加しました

[mysqldump]<−−−追加しました
#default-character-set=utf8<−−−追加しました(あとでコメント化)
default-character-set=binary<−−−追加しました
--------------------------------------------

<mysqlbug実行結果>
(よく分からないですが、emacsが立ち上がったのでその中身です。)

File Edit Options Buffers Tools Help
SEND-PR: -*- send-pr -*-
SEND-PR: Lines starting with `SEND-PR' will be removed automatically, as
SEND-PR: will all comments (text enclosed in `<' and `>').
SEND-PR:
From: root
To: mysql@xxxxxxxxxx
Subject: [50 character or so descriptive subject here (for reference)]

>Description:
        <precise description of the problem (multiple lines)>
>How-To-Repeat:
        <code/input/activities to reproduce the problem (multiple lines)>
>Fix:
        <how to correct or work around the problem, if known (multiple 
lines)>

>Submitter-Id:  <submitter ID>
>Originator:    root
>Organization:
 <organization of PR author (multiple lines)>
>MySQL support: [none | licence | email support | extended email support ]
>Synopsis:      <synopsis of the problem (one line)>
>Severity:      <[ non-critical | serious | critical ] (one line)>
>Priority:      <[ low | medium | high ] (one line)>
>Category:      mysql
>Class:         <[ sw-bug | doc-bug | change-request | support ] (one line)>
>Release:       mysql-4.1.20 (Source distribution)

>C compiler:    gcc (GCC) 3.4.6 20060404 (Red Hat 3.4.6-8)
>C++ compiler:  g++ (GCC) 3.4.6 20060404 (Red Hat 3.4.6-8)
>Environment:
        <machine, os, target, libraries (multiple lines)>
System: Linux dmz-test 2.6.9-55.0.9.EL #1 Thu Sep 27 18:10:45 EDT 2007 i686 
i68\
6 i386 GNU/Linux
Architecture: i686

Some paths:  /usr/bin/perl /usr/bin/make /usr/bin/gmake /usr/bin/gcc 
/usr/bin/c\
c
GCC: /usr/lib/gcc/i386-redhat-linux/3.4.6/specs から spec を読み込み中
コンフィグオプション: 
../configure --prefix=/usr --mandir=/usr/share/man --info\
dir=/usr/share/info --enable-shared --enable-threads=posix --disable-checking 
 -\
-with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable\
-java-awt=gtk --host=i386-redhat-linux
スレッドモデル: posix
gcc バージョン 3.4.6 20060404 (Red Hat 3.4.6-8)
Configure command: ./configure '--build=i686-redhat-linux-gnu' 
'--host=i686-red\
hat-linux-gnu' '--target=i386-redhat-linux-gnu' '--program-prefix=' 
'--prefix=/\
usr' '--exec-prefix=/usr' '--bindir=/usr/bin' '--sbindir=/usr/sbin' 
'--sysconfd\
ir=/etc' '--datadir=/usr/share' '--includedir=/usr/include' 
'--libdir=/usr/lib'\
 '--libexecdir=/usr/libexec' '--localstatedir=/var' 
'--sharedstatedir=/usr/com'\
 '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--with-readline' 
'--wit\
h-vio' '--with-openssl' '--without-debug' '--enable-shared' '--with-bench' 
'--l\
ocalstatedir=/var/lib/mysql' 
'--with-unix-socket-path=/var/lib/mysql/mysql.sock\
' '--with-mysqld-user=mysql' '--with-extra-charsets=all' '--with-innodb' 
'--wit\
h-isam' '--with-berkeley-db' '--enable-local-infile' 
'--enable-large-files=yes'\
 '--enable-largefile=yes' '--enable-thread-safe-client' 
'--disable-dependency-t\
racking' '--with-named-thread-libs=-lpthread' 
'CFLAGS=-O2 -g -pipe -m32 -march=\
i386 -mtune=pentium4 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE 
 -\
fno-strict-aliasing' 
'CXXFLAGS=-O2 -g -pipe -m32 -march=i386 -mtune=pentium4 -D\
_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -fno-strict-aliasing  
-fn\
o-rtti -fno-exceptions' 
'FFLAGS=-O2 -g -pipe -m32 -march=i386 -mtune=pentium4' \
'build_alias=i686-redhat-linux-gnu' 'host_alias=i686-redhat-linux-gnu' 
'target_\
alias=i386-redhat-linux-gnu'



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

->   14287 2007-11-01 13:11 ["kondo" <nobuaki3.ko] mysqldumpでDEFAULT CHARSET=latin1になってしまう。
     14288 2007-11-01 13:15 ┗["kondo" <nobuaki3.ko]