环境
使用docker 在服务器上搭建mysql,版本8+
问题描述
使用sql achemy 插入中文数据,中文变成问号
编码也为latin1
解决过程
进入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%';