解决docker搭建的mysql中文乱码,问号的问题

环境

使用docker 在服务器上搭建mysql,版本8+

问题描述

使用sql achemy 插入中文数据,中文变成问号
image

编码也为latin1
image

解决过程

进入mysql容器:

 docker exec -it 容器名/bin/bash   

通过用户名密码进入mysql

mysql -u root -p

查看当前数据库字符集

SHOW VARIABLES LIKE 'character_set_%';
 SHOW VARIABLES LIKE 'collation_%';

修改mysql的my.cnf

  • 编辑配置文件(配置文件名也可能是mysql.cnf)
vim `etc/mysql/myconf.d/my.cnf`

如果出现报错

bash : vim : command not found```

在容器中安装vim:

apt -get update
apt -get install vim

继续编辑配置文件,在对应标签下面添加对应配置

[mysqld]
default-character-set = utf8
character_set_server = utf8

在配置文件中添加

[mysql]
default-character-set = utf8

[mysql.server]
default-character-set = utf8

[mysql_safe]
default-character-set = utf8

[client]
default-character-set = utf8

保存并退出。

重新连接mysql后,检查mysql字符集编码,看看是否变化:

show variables like '%char%';

show variables like '%collection%';

结果中文正常显示

image

1 个赞