Docker MySQL官方镜像乱码字符集问题:latin1与utf8的纠缠

2017-12-30 Linyuting.cn 个人日志

    最近项目在Docker使用MySQL乱码问题时,遇到一个字符集问题,MySQL官方镜(mysql/mysql-server)默认Charset为latin1,但是我们往往更想使用utf8或者utf8mb4,查阅很多资料都是修改my.cnf解决这个问题,大致方法:


#方法1:修改cnf
[client]
default-character-set = utf8mb4

[mysql]
default-character-set = utf8mb4

[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci


#方法2:docker添加启动命令
--character-set-server=utf8 --collation-server=utf8_unicode_ci --init-connect='SET NAMES UTF8;'



但是我总是无法这样解决,总有一个collation_database还是latin1这么都改不过来。最后用了个临时的解决方法,记录一下,有需要的朋友可以参考:

可以在我们项目初始化(建表)的时候强行设置编码或者修改表的编码:

ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4;
总算解决



标签: Docker

发表评论:

本站由emlog驱动 粤ICP备15042739号