千家信息网

docker官方mysql镜像自定义配置的方法

发表于:2025-11-11 作者:千家信息网编辑
千家信息网最后更新 2025年11月11日,这篇"docker官方mysql镜像自定义配置的方法"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一
千家信息网最后更新 2025年11月11日docker官方mysql镜像自定义配置的方法

这篇"docker官方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 版本

这样数据是没有持久化的 所以在启动参数中需要挂载本地目录

于是这样数据库一直跑着,但是由于最近程序需要支持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/my.cnf 为配置文件,本文件会导入 /etc/mysql/conf.d 目录中所有以 .cnf 为后缀的文件。这些文件会拓展或覆盖 /etc/mysql/my.cnf 文件中的配置。因此你可以创建你自己需要的配置文件并挂载至 mysql 容器中的 /etc/mysql/conf.d 目录。

所以最简单改变数据库配置的方式就是在宿主机上新建配置文件,改成utf8mb4

[client]default-character-set=utf8mb4[mysqld]character-set-client-handshake = falsecharacter-set-server = utf8mb4collation-server = utf8mb4_unicode_ci[mysql]default-character-set=utf8mb4

随后将文件复制到相应docker容器文件夹下

docker cp /home/my.cnf(宿主机文件路径) [容器id]:/etc/mysql/mysql.conf.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/my.cnf 文件。如果想要自定义配置,建议向 /etc/mysql/conf.d 目录中创建 .cnf 文件。新建的文件可以任意起名,只要保证后缀名是 cnf 即可。新建的文件中的配置项可以覆盖 /etc/mysql/my.cnf 中的配置项。因为 mysql 的 docker 官方镜像没有提供 vim 编辑器,所以我用cat命令生成文件并添加内容:

# cat >test.cnf <

退出后,停止容器,再重新启动容器,发现容器无法启动。

解决方法

删除原来那个不能启动的容器。重新创建一个新的容器。问题的关键在于原来的 test.cnf 文件有错误。找到原来配置文件的最后一行:

default-character-set=utf8

把这一行删除。添加配置文件的时候保证没有这一行就可以了。

问题原因

mysql 的官方 docker 镜像里面,在标签 latest 下,[mysqld] 这一配置段上并没有 default-character-set 这一配置项。
如果你要查看所有的配置项,可以使用如下命令,利用管道将输出的帮助都放到 help.txt 文件里面:

docker run -it --rm mysql:tag --verbose --help > help.txt

其中 tag 表示镜像的标签,比如 latest 和 5.6。

以上就是关于"docker官方mysql镜像自定义配置的方法"这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注行业资讯频道。

文件 配置 容器 镜像 官方 内容 方法 代码 参数 目录 问题 一行 命令 数据 后缀 宿主 就是 数据库 文章 时候 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 网络安全员日常 软件开发可以让用户进不去吗 3d动画带小白学网络技术 花生壳局域网服务器失败 会考信息技术考网络技术应用 深圳mcu软件开发兼职 用户密码加密保存在数据库 科技和互联网对艺术的影响 芬兰网络安全事件 格力软件开发视频面试 网络安全 第三方人员 管理 美国技术管理和网络安全专业 北京潮流软件开发服务五星服务 vb 操作sql数据库 广东网信办网络安全协调处 应用软件开发和技术前景 贵州pdu服务器专用电源价格表 暗黑破坏神2战网服务器找不到 校园网络安全主题班会简报 网络安全绘画展板 顺流软件开发 贵州电网网络安全 北京现代软件开发单价 织梦数据库 山东c语言软件开发价钱是多少 哈尔滨一诺互联网信息科技 无法登陆服务器什么情况 南宁鸿发网络技术有限公司 合肥智能边缘计算服务器什么价格 嘉善县网络安全漫画获奖作品
0