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
(確認)
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での文字化けがなくなりました。