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;