MySQLコマンドを使ってMySQLに接続した際に文字化けしていることが稀にあると思いますが、そのような時の対応をあげておきます。
事象としてはこんな感じです。
mysql> select * from users;
+-----+--------------------+---------------------+---------------------+------------+
| id | name | created_at | updated_at | deleted_at |
+-----+--------------------+---------------------+---------------------+------------+
| 1 | ??????? | 2021-07-19 15:03:57 | 2021-07-19 15:03:57 | NULL |
| 2 | ???? | 2021-07-19 15:03:57 | 2021-07-19 15:03:57 | NULL |
| 3 | ??????? | 2021-07-19 15:03:57 | 2021-07-19 15:03:57 | NULL |
| 4 | ??????? | 2021-07-19 15:03:58 | 2021-07-19 15:03:58 | NULL |
| 5 | ?? | 2021-07-19 15:03:58 | 2021-07-19 15:03:58 | NULL |
まずはMySQLの文字コード関連がどのようになっているか確認します。
mysql> show variables like 'character%';
+--------------------------+------------------------------------------------------------------+
| Variable_name | Value |
+--------------------------+------------------------------------------------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | utf8mb4 |
| character_set_filesystem | utf8mb4 |
| character_set_results | latin1 |
| character_set_server | utf8mb4 |
| character_set_system | utf8 |
+--------------------------+------------------------------------------------------------------+
7 rows in set (0.00 sec)
今回は一部の設定(クライアント側の文字コード)がlatin1になっていることが原因でした。
取り急ぎクライアント側の文字コードを変更したい場合は以下で実現可能です。
mysql> SET NAMES utf8;
Query OK, 0 rows affected (0.00 sec)
mysql> show variables like 'character%';
+--------------------------+------------------------------------------------------------------+
| Variable_name | Value |
+--------------------------+------------------------------------------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8mb4 |
| character_set_filesystem | utf8mb4 |
| character_set_results | utf8 |
| character_set_server | utf8mb4 |
| character_set_system | utf8 |
+--------------------------+------------------------------------------------------------------+
7 rows in set (0.00 sec)
その結果、無事に文字化けは解消されました!