0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

MySQLが文字化けするときの対処

Posted at

MySQLで文字化けしてしまったときの対処方です。

  1. クライアント側、サーバー側(mysqlサーバー)、及びそれらの接続の文字コード
  2. データベース/テーブル/カラムの文字コード
    の設定が必要です。

まずは現状を確認です。

show variables like "chara%";
[client]
default-character-set=cp932
・・・

[mysql]
default-character-set=utf8
・・・

[mysqldump]
default-character-set=utf8
・・・

[mysqld]
character-set-server=utf8
・・・
  • character_set_client:クライアント側で発行したsql文はこの文字コードになる
  • character_set_connection:クライアントから受け取った文字をこの文字コードへ変換する
  • character_set_database:現在参照しているDBの文字コード
  • character_set_results:クライアントへ送信する検索結果はこの文字コードになる
  • character_set_server:DB作成時のデフォルトの文字コード
  • character_set_system:システムの使用する文字セットで常にutf8が使用されている

基本的にはこれを全部(character_set_filesystem, character_sets_dir以外)utf-8にすれば大丈夫です。

/etc/my.cnf
[mysqld]
...
character-set-server=utf8 #mysqldセクションの末尾に追加

[client]
default-character-set=utf8 #clientセクションを追加

設定が終わったら、再起動。

/etc/init.d/mysqld restart

確認します。

show variables like "chara%";
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       | #utf8にok!
| character_set_connection | utf8                       | #utf8にok!
| character_set_database   | utf8                       | #utf8にok!
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?