最近在使用 Docker 部署 MySQL 搭建开发环境,遇到了一个字符集的坑。百度了很多资料,很多都是错误的,为了吃教训和方便后来人,记录一下
查看字符编码
进入数据库,输入 show variables like "char%";
如果出现下面的结果
说明你的数据库编码正确,无需修改,应该是页面或者其他编码的问题。如果跟上面的结果不同,说明需要修改数据库的编码。
配置字符集
修改容器中的 MySQL 的配置文件,文件位置在 /etc/mysql/mysql.conf.d/mysqld.cnf
。在 [client]
和 [mysqld]
字段下面均添加 default-character-set=utf8
,保存并关闭
5.5版本以上的MySQL的字符集的配置
在高版本对字符编码方式修改的办法中,在 [mysqld]
下的修改发生了变化,正确方式如下:
[mysqld]
下添加的应该为:
character-set-server=utf8
collation-server=utf8_general_ci
注意
字符集配置完了,要重新建立数据库和表,否则无效。而且,容器需要重启
网友评论