docker中安装mysql数据库

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

 

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

image

 运行 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

     

  • -d:后台运行容器
  • --name:为容器命名,便于后续管理
  • -e MYSQL_ROOT_PASSWORD:设置 root 用户密码(请替换为你自己的强密码)
  • -p 3306:3306:将宿主机的 3306 端口映射到容器内的 MySQL 服务端口

验证容器运行状态
执行以下命令查看容器是否正常运行

docker ps
若看到 mysql-container 处于 Up 状态,说明 MySQL 已成功启动。
连接 MySQL 数据库
你可以使用任意 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 的数据文件将被保存在该目录下。

 

image

 

1. Container name (容器名称)

  • 状态: 已填写 mysql-container
  • 建议: 保持现状即可。这个名字很好记,方便你在列表中认出它。

2. Ports (端口设置) —— ⚠️ 必须填写

这是为了让你的电脑(Navicat)能连上 Docker 里的数据库。
  • 第一行 Host port: 请填写 3306
    • 注意: 如果你电脑上已经安装了别的 MySQL 占用了 3306 端口,这里可以改填 3307 或其他数字。
  • 第二行: 截图里多出来的一行 :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

📝 总结:你需要做的操作

  1. Ports: 第一行左边填 3306
  2. Volumes: 左边选个本地文件夹,右边填 /var/lib/mysql
  3. Environment variables: 点加号,左边填 MYSQL_ROOT_PASSWORD,右边填 123456
  4. 最后点击右下角的蓝色 Run 按钮即可。

image

 如果端口冲突修改端口

image

 

 

image

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

docker ps

image

 

从截图中的 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

       

posted @ 2026-07-16 22:43  红尘沙漏  阅读(19)  评论(0)    收藏  举报