docker中安装mysql数据库
在 Docker Desktop 中安装 MySQL 数据库,最推荐的方式是通过命令行快速部署。以下是完整的操作步骤:
拉取 MySQL 镜像
打开终端或 PowerShell,执行以下命令拉取官方 MySQL 镜像(以稳定版 8.0 为例):
打开终端或 PowerShell,执行以下命令拉取官方 MySQL 镜像(以稳定版 8.0 为例):
docker pull mysql:8.0
在 Docker Desktop 中安装 MySQL 数据库,最推荐的方式是通过命令行快速部署。以下是完整的操作步骤:
拉取 MySQL 镜像
打开终端或 PowerShell,执行以下命令拉取官方 MySQL 镜像(以稳定版 8.0 为例):
打开终端或 PowerShell,执行以下命令拉取官方 MySQL 镜像(以稳定版 8.0 为例):
docker pull mysql:8.0

运行 MySQL 容器
使用以下命令启动容器,设置 root 密码并映射端口:
推荐解决方案:使用反引号续行
在 PowerShell 中,每条参数前加一个空格和反引号
,表示“下一行是上一行的延续”:docker run -d ` --name mysql-container ` -e MYSQL_ROOT_PASSWORD=123456 ` -p 3306:3306 ` mysql:8.0
-
docker run -d --name mysql-container -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 mysql:8.0
验证容器运行状态
执行以下命令查看容器是否正常运行
docker ps
若看到
mysql-container 处于 Up 状态,说明 MySQL 已成功启动。连接 MySQL 数据库
你可以使用任意 MySQL 客户端(如 Navicat、DBeaver 或命令行)连接到
你可以使用任意 MySQL 客户端(如 Navicat、DBeaver 或命令行)连接到
localhost:3306,用户名 root,密码为你设置的 your_password。数据持久化(推荐)
为防止容器删除后数据丢失,建议挂载本地目录:
为防止容器删除后数据丢失,建议挂载本地目录:
docker run -d ` --name mysql-container ` -e MYSQL_ROOT_PASSWORD=123456 ` -p 3306:3306 ` mysql:8.0
将 /your/local/data/path 替换为你本地的路径,MySQL 的数据文件将被保存在该目录下。

1. Container name (容器名称)
- 状态: 已填写
mysql-container。 - 建议: 保持现状即可。这个名字很好记,方便你在列表中认出它。
2. Ports (端口设置) —— ⚠️ 必须填写
这是为了让你的电脑(Navicat)能连上 Docker 里的数据库。
- 第一行 Host port: 请填写
3306。- 注意: 如果你电脑上已经安装了别的 MySQL 占用了 3306 端口,这里可以改填
3307或其他数字。
- 注意: 如果你电脑上已经安装了别的 MySQL 占用了 3306 端口,这里可以改填
- 第二行: 截图里多出来的一行
:33060/tcp是 MySQL 8.0 的 X Plugin 端口,普通连接用不到,可以直接删掉或留空,不用管它。
3. Volumes (存储挂载) —— 💡 强烈建议填写
这一步是为了防止数据丢失。如果不填,一旦你删除了这个容器,里面的数据库表和数据就全没了。
- Host path (本机路径): 点击右边的
...按钮,在你电脑上新建一个文件夹(例如D:\mysql-data),选中它。 - Container path (容器路径): 手动输入
/var/lib/mysql。- 作用: 把数据库的文件存到你电脑的 D 盘,而不是存在虚拟的容器里。
4. Environment variables (环境变量) —— ❗ 必填!
MySQL 官方镜像强制要求设置密码才能启动,不填这个容器会启动失败。
- 点击右侧的
+号添加一行:- Variable (变量名): 输入
MYSQL_ROOT_PASSWORD - Value (值): 输入你想要的密码,例如
123456
- Variable (变量名): 输入
📝 总结:你需要做的操作
- Ports: 第一行左边填
3306。 - Volumes: 左边选个本地文件夹,右边填
/var/lib/mysql。 - Environment variables: 点加号,左边填
MYSQL_ROOT_PASSWORD,右边填123456。 - 最后点击右下角的蓝色 Run 按钮即可。

如果端口冲突修改端口


如果链接不上查询镜像映射
docker ps

从截图中的
docker ps 输出来看,端口映射确实没有配置成功。关键信息分析
请看截图中
PORTS 这一列的内容:3306/tcp, 33060/tcp
删除旧镜像
docker rm -f mysql-container
第二步:重新创建并正确映射端口
复制并运行下面这条完整的命令。这条命令不仅设置了密码,还强制指定了端口映射(把你电脑的 3308 映射到容器的 3306):
docker run -d --name mysql-container -p 3308:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:8.0
命令解释:
-p 3308:3306:这是最关键的部分!意思是 Host Port (3308) : Container Port (3306)。-e MYSQL_ROOT_PASSWORD=123456:设置数据库密码为 123456。
第三步:验证
运行完上面的命令后,再次输入
这次你应该能在
docker ps。这次你应该能在
PORTS 列看到类似 0.0.0.0:3308->3306/tcp 的字样。第四步:连接 Navicat
现在回到 Navicat,确保配置如下,即可连接成功:
- 主机: 127.0.0.1
- 端口: 3308
- 用户: root
- 密码: 123456
-
![image]()


浙公网安备 33010602011771号