tabimoba.net

とあるエンジニアの雑記帳

さくらのレンタルサーバでmysqldumpを実行すると文字化けする件とその対応方法

はじめに

さくらのレンタルサーバのMySQLは、デフォルトの文字コードがujis(EUC-JP)のため、utf-8なデータベースやテーブルをmysqldumpでエクスポートすると文字化けする場合があります。

mysql> show variables like "chara%";
+--------------------------+----------------------------------+
| Variable_name            | Value                            |
+--------------------------+----------------------------------+
| character_set_client     | ujis                             |
| character_set_connection | ujis                             |
| character_set_database   | ujis                             |
| character_set_filesystem | binary                           |
| character_set_results    | ujis                             |
| character_set_server     | ujis                             |
| character_set_system     | utf8                             |
| character_sets_dir       | /usr/local/share/mysql/charsets/ |
+--------------------------+----------------------------------+

対応方法

以下に示すように、mysqldump実行時に「--default-character-set=utf8」を付けることで文字化けしなくなります。

エクスポート時

mysqldump --default-character-set=utf8 -h mysql***.db.sakura.ne.jp -u [hogeuser] -p[hogepassword] [hogedb] > ~/hoge.sql

インポート時

mysql -h mysql***.db.sakura.ne.jp [hogeuser] -p[hogepassword] [hogedb] < ~/hoge.sql

インポート時に文字化けする場合は、「--default-character-set=utf8」を付けて再度確認してください。