さくらVPS構築ログ :第13回 phpMyAdmin の文字化け対策

Web入力サイトを MariaDB で管理するページを作成後、phpMyAdminで内容を修正すると文字化けが起きました。

テーブルを選択して、上辺の操作ボタンを押すと、照合順序を変更できます。これを utf8mb4-general-ci から utf8-general-ci に変更します。これだけではだめで、下記を参考に設定を変更しました。インストール直後でないと、今まで入力した行の文字化けは再入力しないと直らないそうです。

(1) https://www.sakura-vps.net/centos7-setting-list/mysql-settings-for-sakura-vps-centos7/

(2) https://www.a21-hp.com/wp/?p=645

以下、ログの要約

$ vi /etc/my.cnf に追加

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

default_password_lifetime=90 (パスワード有効期間)

[mysqldump]
default-character-set = utf8

[mysql]
default-character-set = utf8

DBを再起動します。

systemctl restart mariadb   (stop,start?かも)

ローカルの /phpmyadmin/ に存在する config.inc.php ファイルを変更

(/var/www/html~)

105,106行目あたりにある「DefaultLang」をコメントアウト

以下の2行を追加しても良い

$cfg[‘DefaultLang’] = ‘ja-utf-8’;
$cfg[‘DefaultCharset’] = ‘ja-u

再起動!?

$ systemctl restart mariadb
$ systemctl restart httpd

この流れで上手くいくまでは、phpMyAdminは行追加用、日本語入力はブラウザフォームからしていました・・・phpMyAdminはぎりぎり使いづらいです。

コマンド的にも行えるそうです。

(3) https://qiita.com/decoch/items/bfa125ae45c16811536a

> use db_example;
> show variables like “chara%”;

$ alter table テーブル名 default character set utf8mb4;

$ ALTER TABLE テーブル名 MODIFY カラム名 値 CHARACTER SET utf8mb4       COLLATE utf8mb4_general_ci;

$ ALTER DATABASE {DB名} CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;