跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像AI 生图工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
SQL

Docker 部署 MySQL 8.0:镜像拉取、配置与远程访问

Docker 部署 MySQL 8.0 涉及镜像拉取、容器运行及参数映射。演示如何通过 docker run 挂载数据卷与配置文件,解决 secure-file-priv 报错问题。重点讲解修改 root 密码认证方式为 mysql_native_password,并授权远程连接权限。最终实现容器自动重启及外部数据库管理工具连接。

DevStack发布于 2026/3/16更新于 2026/7/2333 浏览

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
# 设置东八区时区
default-time_zone
'+8:00'
# 兼容旧版客户端认证方式
authentication_policy
# 字符集设置
character-set-server
collation-server
4_0900_

注意:MySQL 8.0+ 默认使用 caching_sha2_password,部分旧版客户端连接会失败,改为 mysql_native_password 兼容性更好。

保存退出后,重启服务使配置生效:

docker restart mysql

7. 设置自动启动

虽然启动时已加 --restart=always,但再次确认更新策略:

docker update mysql --restart=always

8. 授权远程访问

默认情况下,root 用户仅允许 localhost 登录。若需从外部工具(如 Navicat、DBeaver)连接,需修改权限。

1. 重新进入容器

docker exec -it mysql /bin/bash

2. 登录 MySQL

mysql -u root -p
# 输入密码:123456

3. 切换数据库

USE mysql;

4. 查看当前用户权限

SELECT host, user FROM user;

5. 修改认证与授权

将 root 用户的主机权限改为 %(允许任意 IP),并重置密码认证插件:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
UPDATE user SET host = '%' WHERE host = 'localhost' AND user = 'root';
FLUSH PRIVILEGES;
EXIT;

6. 退出容器

exit

至此,MySQL 容器已部署完成,支持远程连接。建议在防火墙中放行 3306 端口以确保外部可达。

目录

  1. Docker 部署 MySQL 8.0
  2. 1. 拉取镜像
  3. 2. 确认镜像
  4. 3. 运行容器
  5. 4. 检查状态
  6. 5. 进入容器内部
  7. 6. 修改 MySQL 配置
  8. 创建/编辑配置文件
  9. 配置内容
  10. 设置东八区时区
  11. 兼容旧版客户端认证方式
  12. 字符集设置
  13. 7. 设置自动启动
  14. 8. 授权远程访问
  15. 1. 重新进入容器
  16. 2. 登录 MySQL
  17. 输入密码:123456
  18. 3. 切换数据库
  19. 4. 查看当前用户权限
  20. 5. 修改认证与授权
  21. 6. 退出容器
  • 免费图片AI生成工具免费生成了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
  • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
  • 100+免费在线小游戏爽一把
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • 黑客、骇客、红客、蓝客与飞客的定义及区别解析
  • FL-NAS: 基于大语言模型的资源受限设备 NAS 公平性研究
  • 基于 Java + SpringBoot + Vue 的图书大厦管理系统设计与实现
  • Qoder 与通义灵码 IDE 功能对比及安装指南
  • Python 基于 DXGI 实现现代游戏窗口无闪烁截图方案
  • 动态规划 01 背包问题详解与空间优化
  • 网页开发常用知识点梳理
  • AIGC 赋能 Java 编程:智能工具提升开发效率与质量
  • Android WebView 版本升级方案详解
  • Nginx 安装、配置与常用功能实战指南
  • 红客联盟历史回顾与网络安全技术入门
  • OpenClaw 配置 GLM-4.7 Flash 与 DuckDuckGo 搭建飞书联网机器人
  • AI 绘画在商业设计中的应用与版权探讨
  • Windows 本地部署 OpenClaw 集成 DeepSeek 与飞书实现 AI 控制
  • OpenClaw SOUL.md:用自然语言定义 AI Agent 的身份与边界
  • AI 大模型通信机制解析:流式传输与数据封装逻辑
  • 国内 Stable Diffusion 与 LLaMA 模型镜像站推荐及训练实践
  • JDK 安装与环境配置完整指南
  • LeetCode 75. 颜色分类
  • GraphQL 在 Python 中的实现:从基础到企业级实践

相关免费在线工具

  • SQL 美化和格式化

    在线格式化和美化您的 SQL 查询(它支持各种 SQL 方言)。 在线工具,SQL 美化和格式化在线工具,online

  • SQL转CSV/JSON/XML

    解析 INSERT 等受限 SQL,导出为 CSV、JSON、XML、YAML、HTML 表格(见页内语法说明)。 在线工具,SQL转CSV/JSON/XML在线工具,online

  • CSV 工具包

    CSV 与 JSON/XML/HTML/TSV/SQL 等互转,单页多 Tab。 在线工具,CSV 工具包在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online