docker mysql 字符集设置
使用 docker 启动 mysql 容器可能会出现中文乱码的情况,这里记录如何制作支持中文的 mysql 镜像
- 创建 my.cnf 文件
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
collation-server=utf8_general_ci
character-set-server=utf8
init-connect='SET NAMES utf8'
- 编写 Dockerfile
FROM mysql:5.7
COPY my.cnf /etc/mysql/conf.d/mysqlutf8.cnf
CMD ["mysqld", "--character-set-server=utf8", "--collation-server=utf8_unicode_ci"]
- 制作新的镜像
$ docker build -t xxx/mysql:5.7-utf8 .
- 启动容器
$ docker run -d --name mysql \
-p 0.0.0.0:3306:3306 \
-v your-path/mysql:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=your-password \
xxx/mysql:5.7-utf8 \
--character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci