Docker + MySQL 在 Windows 11 上的本地安装部署文档

Docker + MySQL 在 Windows 11 上的本地安装部署文档

前置准备

  1. 确保 Docker Desktop 已在 Windows 11 上安装并运行
    • 打开 PowerShell 或终端,执行以下命令验证:

      powershell 复制代码
      docker --version
      docker info
    • 如果没有安装,请从 Docker 官网 下载并安装

步骤 1: 拉取 MySQL 镜像

在终端中执行以下命令拉取官方 MySQL 镜像(以最新稳定版 MySQL 8.0 为例):

powershell 复制代码
docker pull mysql:8.0

步骤 2: 创建数据持久化目录(推荐)

为了防止数据在容器销毁后丢失,我们在本地创建一个目录用于存储 MySQL 数据:

powershell 复制代码
# 在 D 盘(或你喜欢的其他位置)创建目录
mkdir D:\docker-data\mysql\data
mkdir D:\docker-data\mysql\conf
mkdir D:\docker-data\mysql\logs

步骤 3: 启动 MySQL 容器

执行以下命令启动 MySQL 容器:

powershell 复制代码
docker run -d \
  --name mysql-local \
  -p 3306:3306 \
  -v D:\\docker-data\\mysql\\data:/var/lib/mysql \
  -v D:\\docker-data\\mysql\\conf:/etc/mysql/conf.d \
  -v D:\\docker-data\\mysql\\logs:/var/log/mysql \
  -e MYSQL_ROOT_PASSWORD=root123456 \
  -e MYSQL_DATABASE=local_db \
  -e TZ=Asia/Shanghai \
  --restart=always \
  mysql:8.0

参数说明:

  • -d: 后台运行容器
  • --name: 给容器命名
  • -p 3306:3306: 端口映射(主机:容器)
  • -v: 目录挂载(持久化数据、配置、日志)
  • -e MYSQL_ROOT_PASSWORD: 设置 root 用户密码(必填!)
  • -e MYSQL_DATABASE: 启动时自动创建一个数据库(可选)
  • -e TZ: 设置时区
  • --restart=always: 容器随 Docker 启动自动重启

步骤 4: 检查容器状态

powershell 复制代码
# 查看容器运行状态
docker ps -a

# 查看 MySQL 日志
docker logs mysql-local

步骤 5: 连接测试

你可以使用以下任意一种方式连接 MySQL:

方式 1: 在容器内连接

powershell 复制代码
docker exec -it mysql-local mysql -u root -proot123456

方式 2: 用本地工具连接

使用 Navicat、DBeaver、MySQL Workbench 等工具:

  • 主机: localhost127.0.0.1
  • 端口: 3306
  • 用户: root
  • 密码: root123456

常用管理命令

powershell 复制代码
# 启动容器
docker start mysql-local

# 停止容器
docker stop mysql-local

# 重启容器
docker restart mysql-local

# 进入容器
docker exec -it mysql-local bash

# 删除容器(注意:数据如果有挂载不会丢失)
docker rm -f mysql-local

安全提示

  • 生产环境请不要使用过于简单的密码
  • 如不需要外网访问,建议只允许本地连接
  • 定期备份 D:\docker-data\mysql\data 目录
相关推荐
天衍四九-6 小时前
MySQL中如何定位慢查询?如果SQL语句执行很慢,如何分析和优化?
数据库·sql·mysql
尚久龙7 小时前
mysql-5.7.26-winx64的安装步骤
数据库·mysql
实心儿儿7 小时前
MySQL 的安装
数据库·mysql·adb
IT利刃出鞘8 小时前
Docker Compose--安装WordPress--方法/示例
运维·docker·容器
程序员阿鹏9 小时前
为什么MySQL InnoDB选择B+树?
数据结构·数据库·b树·sql·mysql·算法·缓存
这个DBA有点耶11 小时前
非关系型数据库到底有几种?键值、文档、列族、图,一篇讲透
mysql·架构·nosql
jyOverQ13 小时前
MySQL 事务到底是什么?ACID 四大特性与隔离级别怎么理解?
数据库·mysql
IT大白鼠14 小时前
MySQL 分布式集群系列 · 第八篇(收官)——NDB 集群面试高频题 +架构总结与未来演进
分布式·mysql·面试
IT大白鼠14 小时前
MySQL 分布式集群系列 · 第七篇——生产调优实战:NDB 性能、内存、高可用全方位优化
数据库·分布式·mysql
ShineWinsu14 小时前
对于MySQL:内置函数的解析
linux·数据库·c++·mysql·面试·函数·查询