docker compose mysql中文乱码
网上很多教程都没有用,最后根据:https://www.thinbug.com/q/45729326 解决。
command增加–character-set-server=utf8mb4,–collation-server=utf8mb4_unicode_ci还是乱码:
mysql> show variables like 'char%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | utf8mb4 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | utf8mb4 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)
在environment中增加LANG: C.UTF-8解决。完整compose文件如下:
mysql:
image: 'mysql:5.7'
restart: always
container_name: cim_mysql
environment:
LANG: C.UTF-8 # 修改1
MYSQL_ROOT_PASSWORD: 123456
MYSQL_DATABASE: coffeechat
MYSQL_USER: cim
MYSQL_PASSWORD: ldMe$q2Xl9GKyUxj
volumes:
- cim_mysql_data:/var/lib/mysql
- ./setup/mysql/init/:/docker-entrypoint-initdb.d/
ports:
- "13306:3306"
# 修改2
command: [ '--default-authentication-plugin=mysql_native_password', '--character-set-server=utf8mb4',
'--collation-server=utf8mb4_unicode_ci' ]