我需要一个 docker 安装 mysql 8.0 的命令
为了帮你用 docker 安装 mysql 8.0,我准备了两个版本的命令。如果你是第一次使用,建议先用简化版快速跑起来;如果你希望数据能长期保存、配置更灵活(比如为了生产环境或重要开发),请直接使用完整版。
简化版(快速体验)
这条命令最短,适合快速启动一个 mysql 实例进行测试,但容器删除后数据会丢失。
docker run -d \ --name mysql8 \ -p 3306:3306 \ -e mysql_root_password=root \ mysql:8.0
完整版(推荐,数据持久化 + 详细配置)
这条命令包含了数据挂载、配置文件挂载、时区设置和开机自启,适合长期使用。
# 1. 先在宿主机创建必要的目录
mkdir -p ~/docker/mysql/{data,conf}
# 2. 启动容器的完整命令
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 | 为容器指定一个名字,方便后续管理(如 docker stop mysql8)。 |
-p 3306:3306 | 端口映射,将宿主机的 3306 端口映射到容器的 3306 端口。 |
-e mysql_root_password=... | 必须设置,这是 root 用户的登录密码。 |
-v ~/docker/... | 数据持久化。将容器内的数据目录和配置目录挂载到宿主机,防止容器删除后数据丢失。 |
--restart unless-stopped | 容器开机自启策略,除非手动停止,否则随 docker 自动启动。 |
--character-set-server=utf8mb4 | 额外追加的 mysql 参数,设置默认字符集为 utf8mb4,支持存储表情符号。 |
特别注意:远程连接与密码插件
mysql 8.0 默认使用新的密码验证插件 caching_sha2_password,部分旧的客户端工具(如老版本 navicat)可能无法连接。
如果遇到连接问题,请按以下步骤解决:
进入容器:
docker exec -it mysql8 mysql -uroot -p
(输入你设置的密码)
修改密码验证方式:
在 mysql 命令行中执行,将其改为兼容性更好的mysql_native_password:alter user 'root'@'%' identified with mysql_native_password by 'your_secure_password'; flush privileges;
补充:如何开启远程访问
如果您需要从其他机器访问这个数据库,除了上面的修改插件步骤外,还需要确保:
- 防火墙开放端口:确保宿主机防火墙放行了
3306端口。 - 用户授权:如果您创建了新用户,记得授权
%(所有主机)访问,或者在启动时添加环境变量-e mysql_root_host=%允许 root 远程登录。
总结
到此这篇关于docker安装mysql 8.0两个版本命令总结的文章就介绍到这了,更多相关docker安装mysql 8.0命令内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论