Docker 部署 MySQL 8.0
本文介绍如何在 Linux 环境下通过 Docker 快速部署 MySQL 8.0,并完成基础配置与远程访问授权。相比传统 yum 安装,容器化部署更利于环境隔离与迁移。
1. 拉取镜像
确保宿主机网络通畅,直接拉取官方镜像即可:
docker pull mysql:latest
如需查看可用版本,可执行 docker search mysql(注:新版 Docker CLI 已逐步弃用该命令,建议直接尝试版本号)。
2. 确认镜像
docker images | grep mysql
3. 运行容器
使用以下命令启动容器,并挂载日志、数据及配置文件到宿主机,方便后续维护:
docker run -p 3306:3306 --name mysql \
--restart=always \
--privileged=true \
-v /usr/local/mysql/log:/var/log/mysql \
-v /usr/local/mysql/data:/var/lib/mysql \
-v /usr/local/mysql/conf:/etc/mysql \
-v /etc/localtime:/etc/localtime:ro \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql:latest
参数说明:
-p 3306:3306:端口映射--restart=always:容器随系统重启自动恢复-v:卷挂载,宿主机路径在前,容器路径在后-e:环境变量,设置 root 密码
4. 检查状态
查看容器是否正常运行:
docker ps
若状态为 Up 表示成功。若遇到 restarting 或报错 Failed to access directory for --secure-file-priv,通常是因为权限或目录问题,需调整配置后重启。
查看实时日志定位问题:
docker logs -f mysql
5. 进入容器内部
docker exec -it mysql /bin/bash
6. 修改 MySQL 配置
由于我们在启动时已将 /usr/local/mysql/conf 映射到容器的 /etc/mysql,因此直接在容器内编辑该路径下的配置文件。
创建/编辑配置文件
cd /etc/mysql
vi my.cnf
配置内容
[client]
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4
[mysqld]
# 设置东八区时区
=
=mysql_native_password
=utf8mb4
=utf8mbai_ci
skip-character-set-client-handshake
skip-name-resolve

