プロが教えるわが家の防犯対策術!

現在MySQLデータの移行テストをしています。
移行元サーバは4.0.27 EUC-JP
移行先サーバは5.1.55 UTF-8です。

mysqldumpでダンプデータを作り、terapadで文字コードをEUCからUTF-8Nに変換しています。
移行先サーバにデータを復元しようとすると、改行コード(\r\n)が含まれているレコードをINSERTするところで、エラーになってしまいます。(エラー内容はIncorrect database nameやUnknown MySQL server hostなどまったく関係のないものです)

どなたか解決方法がお分かりでしたらよろしくお願いいたします。

A 回答 (2件)

ダンプファイルの「create table」に「DEFAULT CHARSET=ujis」が残っているのではないでしょうか。

この回答への補足

解決しました。
移行元サーバはさくらインターネットのレンタルサーバなのですが、MySQL5とMySQL4が用意されており、MySQL4のバックアップをする際はmysqldump-4.0というコマンドでダンプを取らなければならなかったようです。
ありがとうございました。

補足日時:2011/03/03 23:52
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
sed -e 's/CHARSET=ujis/CHARSET=utf8/g'で置換していますが、ダメです。
検索してもujisは残っていません。
また、terapadを使わず、nkf -wコマンドで文字コードの変換をしてみましたが結果は同じでした。
ダンプファイルのSQL文をコピペして実行してみると問題なく実行できましたので、構文間違いでもないです。
一部の\r\nを\nにしてみたところ、その部分のSQLは成功しましたので、やはり\rが原因ではないかと思います。

お礼日時:2011/03/03 15:21

使用されているOSの記載がないので推測ですが、\r(0x0D)が悪さしている可能性はありますね。


TeraPadをお使いで文字コードを変換されているなら、同じところに保存時の改行コードの指定があると思います。そこで改行コードを「LF」にして保存してみてはどうでしょう。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
移行元はFreeBSDで移行先はCentOSです。
ダンプファイル自体の改行コードはLFのまま弄っていません。

お礼日時:2011/03/02 20:39

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す