Docker初始化MySQL脚本的时候乱码

背景

通常我们使用Docker启动一个MySQL容器的时候可能会需要初始化一些数据,此时我们可以把初始化的脚本文件挂载到容器内部的这个目录下 /docker-entrypoint-initdb.d/,这样容器启动的时候会自动执行这些脚本。但是因为容器自身的编码格式不是utf8,这就导致初始化之后的数据中文乱码。

解决方案

在每个初始化的脚本头部添加 /*!40101 SET NAMES utf8 */; 一行,然后执行就可以,这句话的意思是告诉mysql使用utf8字符集处理这些脚本而不是系统默认字符集。非常好用,相比其他的要修改容器字符集什么的方便多了。

/*!40101 SET NAMES utf8 */;

# 这里写上需要执行的sql脚本

https://zhuanlan.zhihu.com/p/495894764

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容