エラー対応
mindiaエラー対応記事

MySQL データリストアで文字化けになる

!! (^ ..O ^ ) !! SHINYA · 2008-12-15

環境
Linux
MySQL

【現象】
AサーバからBサーバでMySQLのデータを移行したら文字化けしている

ちなみにバックアップ方法
mysqldump と
LOAD DATA INFILE を試した。

【原因】
もちろん 文字コードの違いが原因

最初のAサーバはmy.cnfでも create database コマンドでも
ダンプ時も文字コードをutf-8にしていたがBサーバのmy.cnfは初期設定のままだったため create database 時に文字コードセットしてもうまくいかない

対応
まず bサーバでmysqlログイン

mysql> show variables like "char%";
と打つと
+--------------------------+----------------------------+

Variable_nameValue

+--------------------------+----------------------------+

character_set_clientlatin1
character_set_connectionlatin1
character_set_databaseutf8
character_set_filesystembinary
character_set_resultslatin1
character_set_serverlatin1
character_set_systemutf8
character_sets_dir/usr/share/mysql/charsets/

+--------------------------+----------------------------+
こんな結果が出る
これにあわせて 取得したmysqldumpデータのファイルに少し情報を追加する

上記の場合だと
vi xxxx.dump をして
set @@character_set_client=latin1;
set @@character_set_connection=latin1;
set @@character_set_database=utf8;
set @@character_set_results=latin1;
set @@character_set_server=latin1;
の記述を冒頭に追加し リストア実行する

見出し語