dockermysql配置_docker官⽅mysql镜像⾃定义配置详解之前为了节省安装时间,所以⽤官⽅mysql docker镜像启动mysql。
通过
复制代码 代码如下:
$ docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d daocloud.io/mysql:tag
some-mysql 指定了该容器的名字,my-secret-pw 指定了 root ⽤户的密码,tag 参数指定了你想要的 MySQL 版本mysql社区版国内镜像下载
这样数据是没有持久化的 所以在启动参数中需要挂载本地⽬录
于是这样数据库⼀直跑着,但是由于最近程序需要⽀持emoji表情,不得不将mysql的字符集更改。
复制代码 代码如下:
$ docker run --name some-mysql -v /my/own/datadir:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d daocloud.io/mysql:tag
这时候就可以挂载⾃定义配置⽂件,官⽅⽂档说明
当 MySQL 服务启动时会以 /etc/mysql/myf 为配置⽂件,本⽂件会导⼊ /etc/mysql/conf.d ⽬录中所有以 f 为后缀的⽂件。这些⽂件会拓展或覆盖 /etc/mysql/myf ⽂件中的配置。因此你可以创建你⾃⼰需要的配置⽂件并挂载⾄ MySQL 容器中的
/etc/mysql/conf.d ⽬录。
所以最简单改变数据库配置的⽅式就是在宿主机上新建配置⽂件,改成utf8mb4
[client]
default-character-set=utf8mb4
[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
[mysql]
default-character-set=utf8mb4
随后将⽂件复制到相应docker容器⽂件夹下
docker cp /home/myf(宿主机⽂件路径) [容器id]:/etc/f.d
最后使⽤docker stop和start命令重启容器就实现了加载⾃定义配置。
由Docker的MySQL官⽅镜像配置的容器⽆法启动问题
我使⽤的是MySQL的Docker镜像。先创建并启动镜像:
# docker run --name mysql-b \
> -p 33002:3306 -v /zc/mysql/datadir-b:/var/lib/mysql \
> -e MYSQL_ROOT_PASSWORD='123456' -d mysql:latest
正常启动,没有问题。通常我们使⽤MySQL的时候,需要设置参数。要设置参数,我们先得进⼊容器的bash,进⾏操作:
docker exec -it mysql-b bash
MySQL的默认配置⽂件是 /etc/mysql/myf ⽂件。如果想要⾃定义配置,建议向 /etc/mysql/conf.d ⽬录中创建 f ⽂件。新建的⽂件可以任意起名,只要保证后缀名是 cnf 即可。新建的⽂件中的配置项可以覆盖 /etc/mysql/myf 中的配置项。因为 MySQL 的Docker 官⽅镜像没有提供 vim 编辑器,所以我⽤cat命令⽣成⽂件并添加内容:
# cat >testf <
[mysqldump]
user=root
password='123456'
[mysqld]
max_allowed_packet=8M
lower_case_table_names=1
character_set_server=utf8
max_connections=900
max_connect_errors=600
default-character-set=utf8
EOF
退出后,停⽌容器,再重新启动容器,发现容器⽆法启动。
解决⽅法
删除原来那个不能启动的容器。重新创建⼀个新的容器。问题的关键在于原来的 testf ⽂件有错误。到原来配置⽂件的最后⼀⾏:
default-character-set=utf8
把这⼀⾏删除。添加配置⽂件的时候保证没有这⼀⾏就可以了。
问题原因
MySQL 的官⽅ Docker 镜像⾥⾯,在标签 latest 下,[mysqld] 这⼀配置段上并没有 default-character-set 这⼀配置项。
如果你要查看所有的配置项,可以使⽤如下命令,利⽤管道将输出的帮助都放到 ⽂件⾥⾯:
docker run -it --rm mysql:tag --verbose --help >
其中 tag 表⽰镜像的标签,⽐如 latest 和 5.6。
以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持我们。
本⽂标题: docker官⽅mysql镜像⾃定义配置详解

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。