MySQL5.0などの古いエンジンで作成されたlatin1文字コードが入ってるDBをMariaDB 10系に移転した際のメモ
今回は旧サーバ>新サーバへの移設。環境はCentOS5>CentOS7となっています。
latin1とは懐かしい!と思う方もいらっしゃるでしょうが、まさか未だにそんなサーバを管理しているケースが意外とあるものですw
さて、ここでは該当DB名をdb_xxxとします。
手順的な結論
- 新サーバのMariaDB(MySQL)で、db_xxxを作成
- 旧サーバ>新サーバへデータコピー。/var/lib/mysql/db_xxxをまるごとrsync
- 新サーバでdb_xxxをダンプ。db_xxx.sqlとします。default-characterの指定は不要
- 新サーバのMariaDBでdb_xxxを削除し、新規でdb_xxxを再作成。文字コード指定不要
- ダンプしたdb_xxx.sqlをDLしてサクラエディタで開き、Latin1形式のdb_xxx2.sqlとして保存。Latin1対応エディタなら何でも良い
- 再びサクラエディタで、db_xxx2.sqlを開くが、この際utf8形式にする。再読み込みでもよい
- Latin1の文字列があればutf8に置換し、utf8形式で保存。
- リストア。ここはcharasetを指定。 mysql -uroot -p --default-character-set=utf8 db_xxx < db_xxx2.sql
ALTER TABLEやnkfなど色々やってみましたが、
私の場合、リストア時に文字コードを指定しても
ERROR at line 604: Unknown command '\"'.
を解消できなかったので、こちらで解決させました。
一番楽な手順が最後になるとは....w
サクラエディタさま、心からありがとうございました!