• 締切済み

データの移行について

いつもお世話になっております。 MySQLのデータに移行について質問させていただきます。 サーバの移転に伴い、データベースも移行することになりました。 MySQLの文字コードが変わっているため、新しいサーバで文字化けを 起こしてしまいます。 1)データのダンプ   $ mysqldump --user=root --password --default-character-set=latin1 DB名 > dump.sql 2)新しいサーバで文字コード変換   $ perl -pi -e 's/utf-8/latin1/' dump.sql 3)インポート   $ mysql --user=root --password DB名 < dump.sql 上記の方法で問題がありますでしょうか。 ご教示よろしくお願いいたします。 <旧サーバ>  MySQL:3.23.58  文字コード:euc-jp <新サーバ>  MySQL:5.0.45  文字コード:utf-8

みんなの回答

  • kuroizell
  • ベストアンサー率55% (95/170)
回答No.3

よく考えたら、latin1ってMySQLの原産国(北欧)の文字コードですね。 --default-character-set=utf8にしてはいかがでしょうか。 中国語使っていてeuc-jpという時点で、既にutf8が使われているような気がしますが・・・

wonder_dct
質問者

補足

kuroizell さん、ご回答ありがとうございます。 ご提示していただいたご回答ですと手順としては 新サーバでの文字コード変換はなしで、以下で間違いないでしょうか。 1)データのダンプ   $ mysqldump --user=root --password --default-character-set=utf8 DB名 > dump.sql 2)インポート   $ mysql --user=root --password DB名 < dump.sql よろしくお願いいたします。

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

OSが不明ですが、perl使っているならlinux系だとして、 nkfでコンバートが妥当でしょうか・・・

wonder_dct
質問者

補足

yambejp さん、ご回答ありがとうございます。 私が直接サーバを触れるわけではないので、お調べしてご連絡できません。申し訳ございません。 ただ、OSのバージョンまでは分かりませんが旧サーバ・新サーバともにLinux系です。 以下のコマンドで、文字コードを変換するにあたり一点確認がございます。 $ nkf -w dump.sql > dump_utf8.sql 中国語も扱っているデータベースなのですが、上記コマンドを実行し インポートして文字化けは起きませんでしょうか。 よろしくご教示お願いいたします。

  • kuroizell
  • ベストアンサー率55% (95/170)
回答No.1

>perl -pi -e 's/utf-8/latin1/' dump.sql ファイル中の文字列が置換されているだけで、dump.splというファイル自体の文字コードが変わっていないのではないでしょうか。 適当なテキストエディタで開いて、utf8に指定して保存してみて下さい。

wonder_dct
質問者

補足

kuroizell さん、ご回答ありがとうございます。 中国語を扱っているデータベースなのですが ご指示いただいた方法を以前に試したことがあるのですが 文字化けをしてしまいました。 以下の方法でやったのですが、私のやり方が間違っていたのでしょうか? 1)秀丸でSQL文を開く。 2)名前を付けて保存で、エンコードの種類を「UTF-8」に変更し保存。 3)再度、秀丸を開くと文字化けしている部分もある。   (主に中国語を扱っている部分) よろしくお願いいたします。

関連するQ&A