Docker三步快速搭建MySQL测试环境:①运行容器并挂载数据卷与初始化SQL;②多版本并行启动不同端口实例;③通过本地工具连接使用,全程无需安装服务端。

用 Docker 三步起一个干净、可复用的 MySQL 测试环境,比手动安装快得多,也避免污染本地系统。
用 Docker 快速拉起 MySQL 实例
不需要装 MySQL 服务端,一条命令就能跑起来:
- 基础命令:`docker run -d --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_DATABASE=testdb -v $(pwd)/mysql-data:/var/lib/mysql -d mysql:8.0`
- 说明:映射本地 3306 端口,设 root 密码,自动创建 testdb 库,挂载数据卷保证重启不丢数据
- 验证是否成功:`docker logs mysql-test` 看启动日志,再用 `mysql -h127.0.0.1 -P3306 -uroot -p123456 -Dtestdb` 连一下
配好初始化 SQL,启动即就绪
想一启动就有表和测试数据?把建表语句和 INSERT 写进 init.sql,挂进容器初始化目录:
- 在项目根目录新建 init.sql,写好 CREATE TABLE 和 INSERT
- 启动时加参数:-v $(pwd)/init.sql:/docker-entrypoint-initdb.d/init.sql:ro
- MySQL 容器首次启动会自动执行 /docker-entrypoint-initdb.d/ 下所有 .sql 文件
多版本并行测试更方便
开发中常要验证不同 MySQL 版本兼容性,Docker 可以同时跑多个实例:
- 起 5.7:`docker run -d --name mysql57 -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7`
- 起 8.0:`docker run -d --name mysql80 -p 3308:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:8.0`
- 连 5.7:`mysql -h127.0.0.1 -P3307 -uroot -p123456`;连 8.0:`mysql -h127.0.0.1 -P3308 -uroot -p123456`
- 停用时 `docker stop mysql57 mysql80`,清理用 `docker rm -f mysql57 mysql80`
配合本地开发工具快速接入
IDEA、DataGrip、Navicat 都能直接连 Docker 中的 MySQL:
- 主机填 127.0.0.1(不是 localhost),端口填你映射的(如 3306 / 3307)
- 用户名 root,密码按启动时设的填
- 建议勾选 “SSL 不启用”,避免 8.0 默认 SSL 连接报错
- 连接成功后,可在 GUI 里直接建表、查数据、导出 SQL,和本地 MySQL 完全一样










