背景
実装のエビデンスのために、mysqlのテーブル内容を貼る必要があったのですが、以下のような感じで日本語部分が文字化け(「????」部分)してしまいました。
mysql> SELECT * FROM employee;
+----+--------------------------------------+------+-------------------+----------+-----------+
| id | uuid | name | email | password | isDisplay |
+----+--------------------------------------+------+-------------------+----------+-----------+
| 1 | 24bb8cda-d7c8-41b1-a641-2d310a9a04b1 | ???? | test@test.co.jp | test | 1 |
| 2 | a8ed75e2-8c75-43bc-aa01-d0638457d390 | ???? | check@check.co.jp | check | 0 |
| 3 | 86f9a92c-d931-4369-9788-87f0e640a7f1 | ???? | ok@ok.co.jp | ok | 1 |
+----+--------------------------------------+------+-------------------+----------+-----------+
これを直す手段を共有します。
手段
docker-composeで立てたmysqlにアクセスして、以下を叩きます。
mysql> status;
--------------
Server characterset: utf8mb4
Db characterset: utf8mb4
Client characterset: latin1
Conn. characterset: latin1
--------------
ここの
- Server characterset
- Db characterset
- Client characterset
- Conn. characterset
4つがutf8になるようにする必要があります。
そのために、docekr-compose.yml
をいじります。
docekr-compose.yml
version: '3'
services:
db:
image: mysql
# ↓のcommandの一行を追加する
command: mysqld --character-set-server=utf8 --collation-server=utf8_unicode_ci --skip-character-set-client-handshake
ports:
- '3306:3306'
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: payment
MYSQL_USER: user
MYSQL_PASSWORD: passwordpassword
もう一度、docker-composeで立てたmysqlにアクセスして、確認すると、
mysql> status;
--------------
Server characterset: utf8
Db characterset: utf8
Client characterset: utf8
Conn. characterset: utf8
utf8
に変わっています。
最後に、文字化けしていないかもう一度確認してみます。
mysql> select * from employee;
+----+--------------------------------------+--------------+-------------------+----------+-----------+
| id | uuid | name | email | password | isDisplay |
+----+--------------------------------------+--------------+-------------------+----------+-----------+
| 1 | 24bb8cda-d7c8-41b1-a641-2d310a9a04b1 | 田中太郎 | test@test.co.jp | test | 1 |
| 2 | a8ed75e2-8c75-43bc-aa01-d0638457d390 | 山田大輔 | check@check.co.jp | check | 0 |
| 3 | 86f9a92c-d931-4369-9788-87f0e640a7f1 | 佐藤次郎 | ok@ok.co.jp | ok | 1 |
+----+--------------------------------------+--------------+-------------------+----------+-----------+
直りました。
出典
https://qiita.com/waterada/items/1dbf6a977611e0e8f5c8
https://qiita.com/luccafort/items/0553c589dcc6459746bc