Docker部署MySQL 8的详细步骤与配置
介绍在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部署与数据库管理的资料请关注本站其它相关文章!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













