phpMyAdminが文字化けした --20年(？)ぶりにLinuxをいじってみる06

全8回の6 → [1](https://qiita.com/Kokusui/items/ba1aa8fa736dc2321e24)|[2](https://qiita.com/Kokusui/items/7ac23b2314898fef6181)|[3](https://qiita.com/Kokusui/items/757277b4e1fb28a3e476)|[4](https://qiita.com/Kokusui/items/9c0d50e3b782b1410a4c)|[5](https://qiita.com/Kokusui/items/42ee26d7e8ad1a114b12)|6|[7](https://qiita.com/Kokusui/items/b6bfb6da52fdf16241a6)|[8](https://qiita.com/Kokusui/items/60fdbdf42fed2045e4f4)

Mysqlに日本語データを登録するphpを書いて実行したら、phpMyAdmin上で文字化けを起こしていたという話。
登録データをphpで引っ張り出してみたところ、ブラウザ上では特に化けておらず、ん～？　というわけで困ったらググる。

[MariaDB, インストール直後にやるべき作業。初期設定は常識です。 | ただ屋ぁのブログ](https://tadtadya.com/mariadb-things-to-do-right-after-installation/)

常識を知らなくてごめんなさい。

```
# mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 56
Server version: 10.5.16-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>  show variables like "%char%";
+--------------------------+------------------------------+
| Variable_name            | Value                        |
+--------------------------+------------------------------+
| character_set_client     | utf8                         |
| character_set_connection | utf8                         |
| character_set_database   | latin1                       |
| character_set_filesystem | binary                       |
| character_set_results    | utf8                         |
| character_set_server     | latin1                       |
| character_set_system     | utf8                         |
| character_sets_dir       | /usr/share/mariadb/charsets/ |
+--------------------------+------------------------------+
8 rows in set (0.001 sec)
```
要するにサーバーサイドでの文字セットがUTF-8でないということだそうな。
参考サイトには「mysql-clients.cnf」と「server.cnf」を直せと書いてあったが
```
# ls -l /etc/my.cnf.d/
合計 24
-rw-r--r--. 1 root root   42  8月 10 01:58 auth_gssapi.cnf
-rw-r--r--  1 root root  327 12月 19 10:22 client.cnf
-rw-r--r--. 1 root root  763  5月 18  2022 enable_encryption.preset
-rw-r--r--  1 root root 1488 12月 19 10:25 mariadb-server.cnf
-rw-r--r--. 1 root root  232  5月 18  2022 mysql-clients.cnf
-rw-r--r--. 1 root root  120  5月 18  2022 spider.cnf
```
どちらもない…。
まあ```my.cnf.d```配下の```*.cnf```ファイルならどこに書いても読み込みはされるということらしいが、一応
```:client.cnf
[client]
default-character-set = utf8mb4
```
と
```:mariadb-server.cnf
[mysqld]
character-set-server = utf8mb4
```
と入れて保存し、
```
# systemctl restart mariadb
```
で再度
```
# mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 57
Server version: 10.5.16-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> 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/share/mariadb/charsets/ |
+--------------------------+------------------------------+
8 rows in set (0.001 sec)
```
いったん文字化けしてしまったデータは直らないそうなので、中身を消して入れ直して無事完了。