概述
本教程基于 Docker 容器化方案,无需在宿主机安装 MySQL 服务。只要确保宿主机网络通畅,即可快速完成环境搭建。
拉取镜像
首先拉取官方 MySQL 8.0 镜像。以下两个命令效果一致:
docker pull mysql
docker pull mysql:latest
如果需要查看可用版本,可以搜索:
docker search mysql
启动容器
运行容器时,建议挂载数据卷和配置文件,以便持久化数据和方便后续修改。同时设置环境变量指定 root 密码。
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:映射宿主机端口与容器端口--name mysql:指定容器名称--restart=always:随 Docker 守护进程自动重启--privileged=true:赋予容器特权模式(部分场景需要)-v ...:挂载日志、数据及配置目录(格式:宿主机路径:容器路径)-e MYSQL_ROOT_PASSWORD=123456:设置 root 用户初始密码-d:后台运行
检查容器状态
使用以下命令查看正在运行的容器:
docker ps
如果状态显示为 Up,表示启动成功。若看到 restarting,则需排查日志:
docker logs -f mysql
常见错误提示 Failed to access directory for --secure-file-priv,这通常是因为权限或目录问题。遇到此类情况,请继续执行后续配置步骤。
进入容器内部
当容器正常运行后,我们可以进入其内部进行调试:
docker exec -it mysql /bin/bash
优化 MySQL 配置
创建配置文件
进入容器后,切换到数据目录并创建配置文件:
cd /usr/local/mysql
ls
mkdir -p conf
cd conf
vi my.cnf
写入配置内容
MySQL 8.0+ 默认认证方式较新,为了兼容更多客户端工具,建议调整为 mysql_native_password。同时设置时区和字符集。
[client]
=utf8mb4
=utf8mb4
=
=mysql_native_password
=
=
=
=utf8mb4
=utf8mbai_ci
skip-character-set-client-handshake
skip-name-resolve

