Docker部署MySQL 8的详细步骤与配置

Dylan
Dylan
发布时间:2026-10-15 | 4人浏览过
原创

介绍在Linux系统中利用Docker容器化技术部署MySQL 8数据库的完整流程,包括环境准备、镜像拉取、数据与配置文件挂载、容器启动参数说明及内部用户权限配置。

准备环境

部署MySQL 8 Docker容器前,需确保运行环境为Linux系统(如CentOS 7),并已安装Docker服务。若未安装,可通过官方文档获取安装指南。

执行部署操作

第1步:拉取MySQL 8镜像

从Docker Hub拉取官方MySQL 8版本镜像:

docker pull mysql:8

第2步:创建配置文件与数据挂载目录

在宿主机上创建用于映射容器内数据的目录,建议分配读写权限:

mkdir -p /usr/mysql/conf /usr/mysql/data
chmod -R 755 /usr/mysql/

其中 /usr/mysql/conf 用于存放 my.cnf 配置文件,/usr/mysql/data 用于存储实际数据库文件。

第3步:编写并保存配置文件

创建自定义配置文件以指定字符集和数据路径:

vim /usr/mysql/conf/my.cnf

配置文件内容如下,设置了UTF-8编码及数据存储位置:

[client]
default-character-set = utf8mb4

[mysqld]
datadir = /usr/mysql/data
character_set_server = utf8mb4
collation_server = utf8mb4_bin
secure-file-priv= NULL
symbolic-links=0
!includedir /etc/mysql/conf.d/

第4步:启动容器

使用以下命令运行容器,实现目录挂载、端口映射及后台运行:

docker run --name mysql8 \
--restart=always \
-v /usr/mysql/conf/my.cnf:/etc/mysql/my.cnf \
-v /usr/mysql/data:/var/lib/mysql \
-v /etc/localtime:/etc/localtime:ro \
-p 4706:3306 \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql:8

关键参数说明:

  • --name mysql8:设定容器名称。
  • --restart=always:设置开机自启及崩溃重启策略。
  • -v /usr/mysql/conf/my.cnf:/etc/mysql/my.cnf:将宿主机配置文件映射至容器。
  • -v /usr/mysql/data:/var/lib/mysql:数据持久化映射,防止容器删除后数据丢失。
  • -v /etc/localtime:/etc/localtime:ro:同步宿主机的时区时间。
  • -p 4706:3306:将宿主机端口4706映射到容器的3306端口。
  • -e MYSQL_ROOT_PASSWORD=123456:初始化root用户的密码。

第5步:进入容器并创建专用用户

出于安全考虑,不建议直接使用root账号进行外部连接,可按以下步骤创建普通用户:

首先,进入容器终端:

docker exec -it mysql8 /bin/bash

然后,登录MySQL数据库:

mysql -uroot -p123456

在MySQL命令行中,创建允许任意IP登录的用户并授予全部权限:

# 创建 python 用户,密码为123456
CREATE USER 'python'@'%' IDENTIFIED BY '123456';

# 赋予所有数据库和操作权限
GRANT ALL ON *.* TO 'python'@'%';

最后,刷新权限使配置生效:

FLUSH PRIVILEGES;
exit

验证部署

部署完成后,可以通过客户端工具连接宿主机IP和映射后的端口(如4706)进行访问测试。

若连接界面显示正常且能列出数据库列表,则表明部署成功。

以上就是Docker部署MySQL 8的详细操作,更多关于Docker部署与数据库管理的资料请关注本站其它相关文章!

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表