昨日に引き続きMySQL関連のテーマをメモします。
mysqldumpでデータをダンプ&別サーバへリストアなんて事あると思います。
その時に文字化けで少しハマったのでメモしておきます。
色んなブログにも記されていますが、mysqldumpでデータを取得すると自動でutf8で取得されてしまいます。
利用しているデータベースがsjis(cp932)を利用しているとします。
mysql> show variables like '%char%';この状態でダンプと取ります。
+--------------------------+---------------------------------------+
| Variable_name | Value |
+--------------------------+---------------------------------------+
| character_set_client | cp932 |
| character_set_connection | cp932 |
| character_set_database | cp932 |
| character_set_filesystem | binary |
| character_set_results | cp932 |
| character_set_server | cp932 |
| character_set_system | utf8 |
| character_sets_dir | /usr/local/mysql/data/mysql/charsets/ |
+--------------------------+---------------------------------------+
# mysqldump DATABASE_NAME > msyql.dumpこれをこのままリストアすると
# mysql DATABASE_NAME < mysql.dmp文字化けが原因でリストアできない場合があります。
こんな場合は使用している文字コードに関係なく
# mysqldump DATABASE_NAME --default-character-set=binary > mysql.dumpと --default-character-set=binary オプションを付けてダンプを取り
# mysql DATABASE_NAME --default-character-set=binary < mysql.dumpと --default-character-set=binary オプションを付けてリストアすれば大丈夫です。
0 件のコメント:
コメントを投稿