这篇文章介绍一下MySQL镜像启动时候通过command方式动态修改参数的方法,并以MySQL镜像缺省字符集修改的实际问题对应作为示例进行使用说明。
应用场景:
MySQL或者Mariadb官方镜像缺省的字符集为latin1,在前面的文章中介绍了对于全局/数据库/表/字段的字符集的查看/设定/修改的多种方式,但是大多方式都是在容器启动之后,或者是需要修改my.cnf的配置文件,从而可能需要修改镜像,把镜像的配置卷挂出来,然后修改设定文件,这些都需要一些额外的手动操作。
有关MySQL字符集查看和设定的内容可参看:
事前环境
可参看Easypack的Redmine的docker-compose.yml文件确认缺省状态下的MySQL数据库的字符集设定。文件内容如下所示:
version: '2'
services:
redmine:
image: liumiaocn/redmine
ports:
- 3000:3000
environment:
REDMINE_DB_MYSQL: redmine
REDMINE_DB_PASSWORD: secret
depends_on:
- redminedb
restart: never
redminedb:
image: liumiaocn/mysql
environment:
MYSQL_ROOT_PASSWORD: secret
MYSQL_DATABASE: redmine
restart: never
链接地址:
https://github.com/liumiaocn/easypack/blob/master/containers/alpine/redmine/docker-compose.yml
启动命令:docker-compose up -d
- 字符集确认
进入到启动的MySQL容器中,可以看到相关设定均为latin1
liumiaocn:redmine liumiao$ docker exec -it redmine_redminedb_1 sh
# mysql -uroot -psecret
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or<