エラー対応の最新の日記
<< 前の日記へ 一覧を見る 次の日記へ >>

 

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

環境
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%";
と打つと

  1. --------------------------+----------------------------+
Variable_name Value
  1. --------------------------+----------------------------+
character_set_client latin1
character_set_connection latin1
character_set_database utf8
character_set_filesystem binary
character_set_results latin1
character_set_server latin1
character_set_system utf8
character_sets_dir /usr/share/mysql/charsets/
  1. --------------------------+----------------------------+

こんな結果が出る
これにあわせて 取得した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;
の記述を冒頭に追加し リストア実行する

コメント

コメントはまだありません

コメントできません (ログインするとコメントできます)