mysql docker环境如何搭建_mysql容器部署流程

26次阅读

docker 运行 mysql 是最轻量、可复现的本地或测试环境搭建方式,核心是一条 docker run 命令配合挂载和参数;支持持久化、远程连接、自定义配置及常见问题处理。

mysql docker环境如何搭建_mysql容器部署流程

直接用 Docker 运行 MySQL 是最轻量、可复现的本地或测试环境搭建方式。核心就是一条 docker run 命令,配合少量挂载和参数即可完成部署。

基础命令:一键启动 MySQL 容器

执行以下命令即可拉取官方镜像并启动一个带持久化、可远程连接的 MySQL 8.0 容器:

  • docker run -d
  • --name mysql8
  • -p 3306:3306
  • -e MYSQL_ROOT_PASSword=123456
  • -v /mydata/mysql/conf:/etc/mysql/conf.d
  • -v /mydata/mysql/data:/var/lib/mysql
  • -v /mydata/mysql/logs:/var/log/mysql
  • -d mysql:8.0

说明:
-p 3306:3306 映射宿主机 3306 端口
-e MYSQL_ROOT_PASSWORD 设置 root 密码(必须);
-v 三个挂载分别对应配置、数据、日志,确保容器重启后数据不丢失。

mysql docker环境如何搭建_mysql容器部署流程

AI Content Detector

Writer推出的AI内容检测工具

mysql docker环境如何搭建_mysql容器部署流程 119

查看详情 mysql docker环境如何搭建_mysql容器部署流程

自定义配置:通过挂载 my.cnf 控制行为

/mydata/mysql/conf/ 下新建 custom.cnf,例如启用时区、调整字符集:

[mysqld] default-time-zone = '+08:00' character-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci skip-character-set-client-handshake = true

Docker 启动时会自动加载该文件。注意:MySQL 8.0 默认使用 caching_sha2_password 插件,如需兼容老客户端,可在配置中加一行:
default_authentication_plugin = mysql_native_password

连接与验证:确认服务可用

启动后检查状态:
docker ps | grep mysql8
进入容器执行 SQL 验证:
docker exec -it mysql8 mysql -uroot -p123456 -e "select VERSION(), @@sql_mode;"
从宿主机用客户端(如 MySQL Workbench、DBeaver 或命令行)连接 127.0.0.1:3306,用户名 root,密码即启动时设置的值。

常见问题处理

  • 容器启动失败报错“Address already in use”:检查宿主机 3306 是否被占用,或换端口(如 -p 3307:3306
  • 首次连接提示“access denied for user ‘root’@’172.x.x.x’”:MySQL 8.0 默认只允许本地 socket 登录 root,需手动授权远程访问:
    docker exec -it mysql8 mysql -uroot -p123456 -e "CREATE USER 'root'@'%' IDENTIFIED BY '123456'; GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION; FLUSH PRIVILEGES;"
  • 挂载目录权限不足导致启动失败:确保宿主机挂载路径(如 /mydata/mysql/data)属主为 999:999(MySQL 容器默认用户 ID),可运行:
    sudo chown -R 999:999 /mydata/mysql

text=ZqhQzanResources