サーバー引越しの依頼がきてMobavleTypeのデータを引っ越しを行ったのですが、旧サーバから新サーバへデータを移行させたところ文字化けしまくってちょっと心が折れそうになっていました。
しかしこちらのエントリーを元に無事解決できたので自分用の備忘録を残しておこうと思います。
1.MySQLへログインして下記コマンドでを旧サーバ・新サーバのステータス情報をそれぞれ確認
mysql> STATUS
文字コードを見ると
旧サーバ
Server characterset: latin1
Db characterset: latin1
Client characterset: latin1
Conn. characterset: latin1
新サーバ
Server characterset: utf8
Db characterset: utf8
Client characterset: utf8
Conn. characterset: utf8
になっていいました。なるほど文字化けするわけだ・・・。
2.とりあえずステータス情報を元に文字コード「latin1」を指定してmysqldumpを実行。
$ mysqldump -u DBUserName -p --default-character-set=latin1 DATABASENAME(バックアップするデータベース名) > backup.sql
Enter password: データベースのパスワードを入力
3.dumpしてできた「backup.sql」をFTPでダウンロード
4.ダウンロードした「backup.sql」をFTPで新サーバへアップロード
5.下記のコマンドを実行して文字コードを「latin1」から「utf8」にして置換
$ perl -pi -e 's/latin1/utf8/' backup.sql
6.新サーバにデータベースを作成。(旧サーバと同様の設定)
7.下記コマンドでデータのリストア
mysqldump -u DBUserName -p DATABASENAME > backup.sql
Enter password: データベースのパスワードを入力
で、リストアできたと思ったのですがうまく行かず、結局サーバにインストールされていたwebminでリストアしました。
データ確認したところ文字化けすることなくデータが移行できていましたとさ。爽快爽快・・・。