使用Docker快速部署MySQL 5.7数据库环境实战教程
引言
在现代软件开发中,数据库的快速部署和配置是至关重要的。Docker作为一种轻量级的虚拟化技术,极大地简化了这一过程。本文将详细介绍如何在Windows环境下使用Docker配置MySQL 5.7数据库,确保其能够正确存储和查询中文字符,并提供数据的持久化存储。通过这一教程,你将能够轻松搭建一个稳定、支持中文的Docker化MySQL环境,适用于开发、测试和生产环境。
前期准备工作
- 访问Docker官网下载并安装Docker Desktop。安装过程简单,只需按照提示操作即可。
- 为了确保能够顺利从Docker Hub拉取数据库镜像,需要添加Registry镜像。有两种方法可以实现:
- 方法一:打开Docker Desktop,点击Extensions右边的三个点,选择”Settings”,然后选择”Docker Engine”。在右边的文本框里添加以下内容:
点击右下角的”Apply & restart”。"registry-mirrors": [ "https://docker.1panel.live", "https://hub.rat.dev/", "https://docker.chenby.cn", "https://docker.m.daocloud.io" ]
- 方法二:直接编辑
C:\用户\你的用户名\.docker\daemon.json
文件,添加上述内容。
- 确保宿主机的3306端口没有被其他服务占用,以免在后续步骤中出现冲突。
安装Docker Desktop
添加Registry镜像
检查宿主机端口
拉取并启动MySQL 5.7镜像
- 打开命令行工具,执行以下命令拉取MySQL 5.7的官方镜像:
docker pull mysql:5.7
- 使用以下命令启动MySQL容器,并将其端口映射至宿主机的3306端口,同时设置root用户的默认密码为
root123
:docker run --name mysql57 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root123 -d mysql:5.7
- 参数解释:
--name mysql57
:为容器命名为mysql57。-p 3306:3306
:将容器的3306端口映射到宿主机的3306端口。-e MYSQL_ROOT_PASSWORD=root123
:设置root用户的密码为root123。-d
:以守护进程模式运行容器。
拉取MySQL镜像
启动MySQL容器
配置字符集支持中文
- 为了配置字符集,需要先停止并移除之前的容器:
docker stop mysql57 docker rm mysql57
- 创建一个数据卷目录,用于持久化存储数据、日志和配置文件:
mkdir -p /path/to/mysql/data
- 创建一个名为
my.cnf
的配置文件,并添加以下内容以确保服务器使用正确的字符集: “`ini [mysqld] character-set-server=utf8mb4 collation-server=utf8mb4_general_ci - 使用以下命令重新启动MySQL容器,并挂载数据卷和配置文件:
docker run --name mysql57 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root123 -v /path/to/mysql/data:/var/lib/mysql -v /path/to/my.cnf:/etc/mysql/my.cnf -d mysql:5.7
停止并移除之前的容器
创建数据卷和配置文件
[client] default-character-set=utf8mb4 “`
重新启动MySQL容器
验证配置的正确性
- 使用以下命令进入MySQL容器:
docker exec -it mysql57 bash
- 在容器内部使用MySQL命令行工具登录数据库:
mysql -uroot -p
- 输入密码
root123
。 - 在MySQL命令行中执行以下命令,检查字符集配置:
SHOW VARIABLES LIKE 'character_set_%'; SHOW VARIABLES LIKE 'collation_%';
- 确保输出结果中
character_set_server
和collation_server
的值为utf8mb4
。 - 创建一个测试表并插入中文数据:
CREATE DATABASE testdb; USE testdb; CREATE TABLE testtable (id INT, name VARCHAR(100)); INSERT INTO testtable (id, name) VALUES (1, '测试数据');
- 查询插入的数据:
SELECT * FROM testtable;
- 确保查询结果正确显示中文数据。
登录MySQL容器
检查字符集配置
测试中文数据插入和查询
总结
通过上述步骤,我们成功使用Docker在Windows环境下部署了一个支持中文的MySQL 5.7数据库环境。利用Docker的数据卷功能,我们保证了数据的持久化存储,并通过配置文件灵活地修改了数据库的字符集设置。这种方法不仅简化了数据库的部署过程,还提高了配置的灵活性和安全性,适用于各种开发、测试和生产环境。
希望这篇教程对你有所帮助,祝你在Docker和MySQL的使用中取得更大的成功!