|
■MySQL 4.1.20 文字化け 対策方法 ( 解決 ) なかなかブログ更新できなかったけど、やっと更新w 今回は、データベース(mysql)のバックアップをやってみた。 が、なぜか文字化け発生!!! mysqldumpを使ってバックアップ、それを普通にインポートしたんだけど、、。 なぜだ!? 色々と調べてたら、mysqlのバージョン4.0以上では 結構文字化けをしてる人がいるみたいだね。 文字化けが解決したので、以下に対策方法を記載します。 無料ではじめるサイト運営 無料で始まる副収入 1.mysql設定ファイルの確認 基本的には、my.cnf(mysql設定ファイル)に default-character-setを追加したらいいみたい。 今回のデータベースは、sjisで設定されてて、 以下のように[mysqld]でsjisと設定されていた。 [mysqld] default-character-set=sjis ん??[mysql]、[mysqldump]の項目はないや。。 もし、my.cnfファイルに [mysql] default-character-set=sjis [mysqldump] default-character-set=sjis という記載がない場合は追加設定したら 今回の問題は解決できるぽい。 だけど、my.cnfファイル変更した場合、 その設定内容を適用させるにはmysqldの再起動が必要なので 他の方法を探した。 2.現在のmysql文字設定を確認 じゃー、mysqlサーバ側はどんな文字コードとして 参照してるのか調べる必要があるじゃん!ってことで、 コンソールからmysqlにログインして、以下のコマンドを実行する。 # mysql> SHOW VARIABLES LIKE 'character_set%'; +--------------------------+----------------------------+ | Variable_name | Value | +--------------------------+----------------------------+ | character_set_client | sjis | | character_set_connection | sjis | | character_set_database | sjis | | character_set_filesystem | sjis | | character_set_results | sjis | | character_set_server | sjis | | character_set_system | utf8 | | character_sets_dir | /usr/share/mysql/charsets/ | +--------------------------+----------------------------+ SQLコマンドを実行すると↑のように表示された。 ほほう、すべてsjisになってるな。 ん???「character_set_system」がutf8だーーーーーー。 なぜなぜ? なんと、「character_set_system」がutf8になっていたことが 原因だったみたい!? 3.MySQL 4.1.20 文字化け 対策方法 文字化けの対策として強制的に文字コードを設定しつつ、 エクスポートおよびインポートを行えば解決できることがわかった。 エクスポート(バックアップ): #> mysqldump --default-character-set=sjis -u ユーザ名 -p データベース名 > test.sql インポート(リストア): #> mysql --default-character-set=sjis -u ユーザ名 -p データベース名 < test.sql 上記のコマンドでバックアップおよびリストアがうまくいった! 文字化けも無くなった。 あーーー結構悩んだのに、、、 もっと早く気付けばよかったなぁ。。 |
| << 前記事(2007/10/11) | ブログのトップへ | 後記事(2008/02/05) >> |
| タイトル (本文) | ブログ名/日時 |
|---|
| 内 容 | ニックネーム/日時 |
|---|
| << 前記事(2007/10/11) | ブログのトップへ | 後記事(2008/02/05) >> |