docker mysql utf8mb4 编码问题解决方法
docker mysql utf8mb4 编码问题解决方法最近在学习docker,写入中文mysql报错的问题困扰了我2,3天,在搜索了相关资料后终于找到了解决方法。原因是mysql5.7及之前的默认字符集是latain,而它是不支持中文的。基本思路是基于官方的mysql docker image,构建一个默认字符集为utf8mb4的新镜像,后面再用到mysql的时候直接用这个新镜像。文件也可以直
·
docker mysql utf8mb4 编码问题解决方法
最近在学习docker,mysql写入中文报错的问题困扰了我2,3天,在搜索了相关资料后终于找到了解决方法。原因是mysql5.7及之前的默认字符集是latain,而它是不支持中文的。
基本思路是基于官方的mysql docker image,构建一个默认字符集为utf8mb4的新镜像,后面再用到mysql的时候直接用这个新镜像。文件也可以直接在这下载,具体步骤如下:
1.创建文件utf8mb4.cnf,其内容如下,这个就是sql的配置文件,作用是把默认字符集改为utf8mb4
[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.在utf8mb4.cnf同一目录,创建文件Dockerfile,内容如下,作用是基于mysql5.6 官方的docker镜像,把utf8mb4.cnf 复制到容器的/etc/mysql/conf.d/目录下,构建新镜像
FROM mysql:5.6
COPY utf8mb4.cnf /etc/mysql/conf.d/
3.在该目录打开shell,输入如下命令,基于上面2个文件构建新镜像,并打上标签mysql5.6_utf8mb4
docker build . -t mysql5.6_utf8mb4
大功告成,后面需要运行mysql容器时就在shell用以下的命令即可
docker run mysql5.6_utf8mb4
使用utf8mb4字符集的原因是,mysql只有它才完整支持utf8的标准,比如emoji表情。
更多推荐
已为社区贡献1条内容
所有评论(0)