MySQLでデータが画面上で文字化けしないようにする方法をメモ。
環境:MySQL 5.7、CentOS7
下の画像の様なラテン語や記号などに文字化けしてしまう状態を直すためには
MySQLの※設定ファイルを変更します。
※CentOS7の場合 /etc/my.cnf
# vi /etc/my.cnf
設定ファイル内、以下の項目にそれぞれUTF-8の文字コードを設定します。
[mysqld]
character-set-server=utf8
[client]
default-character-set=utf8
今回の状況では上記の2箇所でOKでしたがダンプ等、他の目的によっては下記も設定します。
[mysql]
default-character-set=utf8
[mysqldump]
default-character-set=utf8
設定を追加したら、MySQLを再起動して反映します。
# systemctl restart mysqld
設定の反映はMySQLへログインしstatusコマンドを実行することで確認出来ます。
mysql> status -------------- mysql Ver 14.14 Distrib 5.7.30, for Linux (x86_64) using EditLine wrapper Connection id: 17 Current database: Current user: root@localhost SSL: Not in use Current pager: stdout Using outfile: '' Using delimiter: ; Server version: 5.7.30 MySQL Community Server (GPL) Protocol version: 10 Connection: Localhost via UNIX socket Server characterset: utf8 Db characterset: utf8 Client characterset: utf8 Conn. characterset: utf8
latin1(変更前)からutf8に変更されていればOKです。
(注意)
当たり前ですが設定変更前に投入していた文字化けデータはそのままですので、
そちらも修正したい場合は設定反映後に同じデータを入れ直す必要があります。