管理共享的 MySQL Docker 容器,用于本地开发环境。处理容器生命周期、数据库创建/删除以及跨实例数据迁移。
MySQL 管理器是一项面向实际任务的技能,主要用于管理本地 dev 实例使用的共享 MySQL 容器;Architecture.;
该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;
若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
管理本地开发实例共用的 MySQL Docker 容器。
mysql-manager/ ├── docker-compose.yml # MySQL 8.0 容器 └── run.sh # 生命周期管理 + 数据库管理 CLI
MySQL 容器运行在共享的 Docker 网络上(默认为 nginx-proxy_net),因此所有应用容器均可通过主机名(codai_db)访问该容器。数据持久化存储于命名卷(mysql_data)中。
./run.sh start # 启动 MySQL 容器 ./run.sh stop # 停止容器(数据保留在卷中) ./run.sh status # 查看容器状态 + 列出数据库 ./run.sh wait # 阻塞等待,直至 MySQL 就绪(适用于脚本调用) ./run.sh create-db# CREATE DATABASE IF NOT EXISTS ./run.sh drop-db # DROP DATABASE(交互式确认) ./run.sh dump # mysqldump src | mysql dest ./run.sh list-dbs # SHOW DATABASES(过滤后输出)
cd mysql-manager && ./run.sh start
首次运行时,Docker 将创建数据卷并初始化 codai_main 数据库。
./run.sh create-db codai_alpha
./run.sh dump codai_main codai_alpha
./run.sh drop-db codai_alpha # 会提示确认
./run.sh status
必须在启动任意应用实例之前先启动 MySQL:
proxy-manager:./run.sh start(创建共享 Docker 网络)mysql-manager:./run.sh start(加入共享网络)worktree-manager:./run.sh start 可通过环境变量或 mysql-manager/ 目录下的 .env 文件设置:
| 变量 | 默认值 | 用途 |
|---|---|---|
MYSQL_CONTAINER |
codai_db |
容器名称 |
MYSQL_ROOT_PASSWORD |
secret |
MySQL root 密码(主配置项) |
MYSQL_ROOT_PASS |
(备用) | 旧版别名;MYSQL_ROOT_PASSWORD 优先级更高 |
MYSQL_MAIN_DB |
codai_main |
主数据库名称 |
MYSQL_PORT |
3307 |
宿主机端口(映射至容器内 3306) |
CODAI_NETWORK |
nginx-proxy_net |
共享 Docker 网络名称 |
MYSQL_MAIN_DB —— 它是所有快照的唯一可信数据源。drop-db 命令始终要求交互式确认。^[a-z][a-z0-9_]{0,62}$ 校验。stop 命令保留 Docker 卷中的数据。docker compose down -v 仅在明确需要清除持久化数据时使用。restart: unless-stopped —— Docker 守护进程重启后会自动恢复运行。完成使用后请运行 ./run.sh stop 显式停止。MYSQL_PORT)仅绑定至 127.0.0.1。在共享机器上,请务必设置非默认的 MYSQL_ROOT_PASSWORD。codai_db)即为后端应用连接数据库时使用的主机名。proxy-manager —— 管理用于将流量路由至各应用实例的 nginx-proxy(需最先启动)worktree-manager —— 管理应用实例与 Git 工作树(依赖本插件)