Mysql-5.5系をWebminで操作するときにハマったこと

 WebminでMysqlのデータ変更したときに文字化けが置きました。以前使っていた「Mysql-5.1」と「Webmin-1.530」では問題なかったのに・・・文字コードはMysql、WebminともにUTF-8でした。

 今回、いろいろ調べていくと、Mysql側の文字コードが、UTF-8でも「utf8」「utf8mb4」の二種類あるみたい。(「utf8」3バイト、「utf8mb4」4バイトのデータ)Mysqlのコンパイル時に「utf8」を指定したが、設定を確認すると「character_set_server 」が「utf8mb4」になっており、それがWebminで文字化けする原因でした。
 対策として、使用する文字コードは「utf8mb4 」で統一することにしました。 

(確認した内容)
mysql> show variables like ‘char%’;
+--------------------------+----------------------------------+
| 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 | utf8mb4 |
| character_set_system | utf8 |
| character_sets_dir | /usr/local/mysql/share/charsets/ |
+--------------------------+----------------------------------+

Mysql側の設定
「my.cnf」ファイルの変更
[root@localhost ~]# vi /etc/my.cnf

「my.cnf」ファイルに追記する内容

[client]
default-character-set = utf8mb4

[mysqld]
character-set-server = utf8mb4

[mysql]
default-character-set = utf8mb4

(確認)
mysql> show variables like ‘char%’;
+--------------------------+----------------------------------+
| Variable_name | Value |
+--------------------------+----------------------------------+
| character_set_client | utf8mb4 |
| character_set_connection | utf8mb4 |
| character_set_database | utf8mb4 |
| character_set_filesystem | binary |
| character_set_results | utf8mb4 |
| character_set_server | utf8mb4 |
| character_set_system | utf8 |
| character_sets_dir | /usr/local/mysql/share/charsets/ |
+--------------------------+----------------------------------+

Webmin側の設定
 Webminの設定変更場所は、「mysql」→「モジュール設定」に入り、その中の項目「データベース内容のエンコーディング」を「utf8mb4」に変更します。

 以上のようにMysqlとWebminの文字コードを「utf8mb4」に統一することで、Webminでの文字化けがなくなりました。

Be the first to comment on "Mysql-5.5系をWebminで操作するときにハマったこと"

Leave a comment