mySQLで日本語入力できなくて詰まった

## 結論
文字コードが原因でした。
原因はすぐにわかっても解消に時間を要したので備忘録

## 詰まった流れ
文字コードの事は何も意識せず、WSL2のUbuntuに入れたmySQLで
CREATE DATABASE
CREATE TABLE
まで行い、INSERTしようとしたら、
```SQL
ERROR 1366 (HY000): Incorrect string value: '\xE5\x8C\x97\xE6\xB5\xB7...
```
とエラーを吐きました。

SHOW VARIABLES LIKE 'chara%';
を実行することで、文字コードを見れるとのことなので、確認
```SQL
mysql> show variables like 'chara%';
+--------------------------+----------------------------+
| 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     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)
```
character_set_database   | latin1
となっているのは期待値ではありません。
期待値は
character_set_database   | utf8

## 設定ファイルをいじる
```Bash
# vi /etc/mysql/mysql.conf.d/mysqld.cnf
```
最下部に以下を追記
```
[character-set-server=utf8mb4]
```

二つ目、こちらもいじる
```Bash
vi /etc/mysql/my.cnf
```
同様に最下部に以下を追記
```
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqldump]
default-character-set=utf8
[mysqld]
character-set-server=utf8
```

## また詰まる
前出の2つの設定ファイルを編集後、再起動
```Bash
# service mysql stop
# service mysql start
```
mysqlに接続して
再度確認
```SQL
mysql> show variables like 'chara%';
+--------------------------+----------------------------+
| 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     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)
```
お。期待値どおりやん。
と思い、INSERT文発行したら、同様のエラーを吐かれました。
そして、再度show variables like 'chara%';を実行すると、
character_set_database   | latin1
へと逆戻り。なにこれ、、、
quitして、mySQLを再起動かけてもダメ。
色々と調べた結果、既にDBやテーブルが存在すると反映されないみたいです。

## 解決
設定ファイルをいじったあと、既に作成したDBが残っていると反映されないみたいです。

DROP文大量発行タイムです。
自分が作成した、DBをすべて削除したら、quitして、再起動。
DBを作成してみます。
```SQL
> CREATE DATABASE hoge DEFAULT CHARACTER SET utf8;
> use hoge;
> show variables like 'chara%';
+--------------------------+----------------------------+
| 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     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)
```

と見事解決。

## 結論
- mysqlをinstallしたら最初に文字コードの確認やりましょう。
- 既に以前の文字コードで作成されたDBがあると、反映されません

ということでした。