はじめに
さくらのレンタルサーバの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」を付けて再度確認してください。