Docker 部署 MySQL 8.0 命令详解
本文提供两种 Docker 安装 MySQL 8.0 的命令方案。简化版适合快速测试,完整版支持数据持久化及生产环境配置。
简化版(快速体验)
此命令最短,适合快速启动实例进行测试,但容器删除后数据会丢失。
docker run -d \
--name mysql8 \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=root \
mysql:8.0
完整版(推荐,数据持久化 + 详细配置)
包含数据挂载、配置文件挂载、时区设置和开机自启,适合长期使用。
- 在宿主机创建必要的目录:
mkdir -p ~/docker/mysql/{data,conf}
- 启动容器的完整命令:
docker run -d \
--name mysql8 \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=your_secure_password \
-e TZ=Asia/Shanghai \
-v ~/docker/mysql/data:/var/lib/mysql \
-v ~/docker/mysql/conf:/etc/mysql/conf.d \
--restart unless-stopped \
mysql:8.0 \
--character-set-server=utf8mb4 \
--collation-server=utf8mb4_unicode_ci
命令参数详解
| 参数 | 说明 |
|---|---|
-d | 后台运行容器(守护式运行)。 |
--name mysql8 | 为容器指定名字,方便后续管理。 |
-p 3306:3306 | 端口映射,将宿主机的 3306 端口映射到容器。 |
-e MYSQL_ROOT_PASSWORD=... | 必须设置,root 用户的登录密码。 |
-v ~/docker/... | 数据持久化。防止容器删除后数据丢失。 |
--restart unless-stopped | 容器开机自启策略。 |
--character-set-server=utf8mb4 | 设置默认字符集,支持存储表情符号。 |
远程连接与密码插件注意事项
MySQL 8.0 默认使用 caching_sha2_password 插件,旧客户端工具可能无法连接。如遇问题,请修改密码验证方式。
进入容器:
docker exec -it mysql8 mysql -uroot -p
执行 SQL 修改:
ALTER USER 'root'@'%' IDENTIFIED mysql_native_password ;
FLUSH PRIVILEGES;


