MySQLの文字化け解決法

MySQLの文字化けを解決して文字コードをUTF8にする方法。


まず、現在の設定を調べる。
mysql -u ユーザー名 -p
パスワード入力
mysql> show variables like 'character_set%';
以下のような結果だと、utf8になっていない。
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+

my.cnfを設定
sudo vi /etc/mysql/my.cnf
※上記はUbuntuの場合。
/etc/my.cnfなどの場合もある模様。

以下を書き加える
sudo vi /etc/mysql/my.cnf

[client]
default-character-set=utf8

[mysqld]
default-character-set=utf8
skip-character-set-client-handshake

既存のデータベースをUTF8にする場合は
alter database データベース名 default character set utf8

MySQLを再起動
sudo /etc/init.d/mysql restart

確認してみる
mysql> show variables like 'character_set%';

以下のようならOK
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+

既存のテーブルの文字コードを変更するには
ALTER TABLE テーブル名 CHARSET=utf8;
基礎からのMySQL [基礎からのシリーズ] (プログラマの種シリーズ)

基礎からのMySQL [基礎からのシリーズ] (プログラマの種シリーズ)

  • 作者: 西沢 夢路
  • 出版社/メーカー: ソフトバンククリエイティブ
  • 発売日: 2007/12/26
  • メディア: 大型本






タグ:MySQL
posted by digital-squad at 2009年09月18日 18時29分 | Comment(0) | TrackBack(0) | Ruby on Rails / Ruby
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバック
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。