
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
tutum-docker-mysql是用于运行MySQL数据库服务器的基础Docker镜像。它提供了便捷的部署方式,支持多种配置选项,适用于开发、测试及生产环境中快速搭建MySQL服务。
不同MySQL版本从不同文件夹构建。如需使用MariaDB,请查看tutum/mariadb镜像:https://github.com/tutumcloud/tutum-docker-mariadb
admin用户在tutum-mysql文件夹中执行以下命令创建tutum/mysql镜像(以5.5版本为例):
bashdocker build -t tutum/mysql 5.5/
运行镜像并绑定3306端口:
bashdocker run -d -p 3306:3306 tutum/mysql
获取初始密码
首次运行容器时,会创建admin用户并生成随机密码。通过容器日志查看密码:
bashdocker logs <CONTAINER_ID>
日志输出示例:
======================================================================== You can now connect to this MySQL Server using: mysql -uadmin -p47nnf4FweaKu -h<host> -P<port> Please remember to change the above password as soon as possible! MySQL user 'root' has no password but only allows local connections. ========================================================================
其中47nnf4FweaKu即为admin用户的密码。
测试连接
bashmysql -uadmin -p
通过MYSQL_PASS环境变量设置预设密码:
bashdocker run -d -p 3306:3306 -e MYSQL_PASS="mypass" tutum/mysql
测试连接:
bashmysql -uadmin -p"mypass"
管理员用户名可通过MYSQL_USER环境变量设置。
通过ON_CREATE_DB环境变量指定容器创建时自动创建的数据库名称:
bashdocker run -d -p 3306:3306 -e ON_CREATE_DB="database" tutum/mysql
为持久化数据库数据,可将主机本地文件夹挂载到容器的/var/lib/mysql目录(MySQL默认数据存储路径):
bashdocker run -d -v /path/in/host:/var/lib/mysql tutum/mysql /bin/bash -c "/usr/bin/mysql_install_db"
注意:主机需确保
/path/in/host目录存在
bashdocker run -d -p 3306:3306 -v /path/in/host:/var/lib/mysql tutum/mysql
另一种持久化方式是将数据库文件存储在专用数据容器中:
tutum/ubuntu-trusty为基础镜像):bashdocker run -d -v /var/lib/mysql --name db_vol -p 22:22 tutum/ubuntu-trusty
--name选项可指定容器名称,供后续步骤使用
bashdocker run -d --volumes-from db_vol -p 3306:3306 tutum/mysql
导出数据
从现有服务器导出数据库结构:
bashmysqldump -u<user> -p --opt -d -B <database name(s)> > /tmp/dbserver_schema.sql
导出数据库数据:
bashmysqldump -u<user> -p --quick --single-transaction -t -n -B <database name(s)> > /tmp/dbserver_data.sql
导入数据
方法1:通过/import_sql.sh脚本导入(假设SQL文件位于主机/tmp目录):
bashsudo docker run -d -v /tmp:/tmp tutum/mysql /bin/bash -c "/import_sql.sh <user> <pass> /tmp/<dump.sql>"
方法2:启动时通过STARTUP_SQL环境变量指定初始化SQL文件:
bashsudo docker run -d -v /path/in/host:/var/lib/mysql -e STARTUP_SQL="/tmp/<dump.sql>" tutum/mysql
<user>和<pass>为之前设置的数据库用户名和密码,<dump.sql>为SQL文件名
通过设置环境变量REPLICATION_MASTER或REPLICATION_SLAVE启用主从复制。主库可通过REPLICATION_USER和REPLICATION_PASS指定复制账户(默认值:replica:replica)。
主库示例
bashdocker run -d -e REPLICATION_MASTER=true -e REPLICATION_PASS=mypass -p 3306:3306 --name mysql tutum/mysql
从库示例
bashdocker run -d -e REPLICATION_SLAVE=true -p 3307:3306 --link mysql:mysql tutum/mysql
可通过3306端口访问主库,3307端口访问从库
MYSQL_USER:管理员账户用户名(默认:admin)MYSQL_PASS:管理员账户密码(未设置时自动生成随机密码)STARTUP_SQL:初始化数据库的一个或多个SQL脚本(空格分隔,需确保脚本在容器内可访问)ON_CREATE_DB:容器创建时自动创建的数据库名称REPLICATION_MASTER:设为true启用主库模式REPLICATION_SLAVE:设为true启用从库模式REPLICATION_USER:复制账户用户名(默认:replica)REPLICATION_PASS:复制账户密码(默认:replica)您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务
以下是 tutum/mysql 相关的常用 Docker 镜像,适用于 关系型数据库、事务处理、数据存储 等不同场景: