久々にdockerでwordpressを立ち上げて、dockerのdbの中を見ようとしたら日本語が文字化けしまくり。
mysql> show variables like '%chara%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
はい、全てlatin1になってます。
てことで、毎度の如くググると、色んな方法が有る。
docker-compose.ymlの中でcommandオプションを使ってserver側の文字コードを変更出来るらしい。
でも、clientは変更出来ない。
さて、どうしようと思ったら、普通にmy.cnfをホスト側に作ってvolumesでマウント?すれば良いだけらしい。
docker-compose.ymlのdbの部分
db:
image: mysql:latest
env_file: .env
volumes:
- db-data:/var/lib/mysql
- ./my.cnf:/etc/mysql/conf.d/my.cnf
これで起動したところ
mysql> show variables like '%char%';
+--------------------------+----------------------------+
| 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/ |
+--------------------------+----------------------------+
うむ、上手くいった。
コメント