Docker MySQL 运行 SQL 脚本
在使用 Docker 部署 MySQL 数据库时,通常需要执行一些 SQL 脚本来创建数据库、表和插入数据等操作。本文将详细介绍如何在 Docker 中运行 SQL 脚本,以便您能够快速搭建起一个可用的 MySQL 数据库环境。
准备工作
在开始之前,您需要确保已经安装 Docker 和 Docker Compose。如果还没有安装,可以参考 Docker 官方文档进行安装。
此外,您还需要准备一个 SQL 脚本文件,其中包含您要执行的 SQL 语句。
假设您已经准备好了这些内容,接下来我们开始部署 MySQL 数据库并运行 SQL 脚本。
创建 Docker Compose 文件
首先,我们创建一个 Docker Compose 文件,用于定义 MySQL 服务的配置。在项目根目录下创建一个名为 docker-compose.yml
的文件,并添加以下内容:
version: '3.1'
services:
mysql:
image: mysql:5.7
restart: always
environment:
MYSQL_ROOT_PASSWORD: root
volumes:
- ./sql-scripts:/docker-entrypoint-initdb.d
ports:
- "3306:3306"
在上面的配置中,我们定义了一个 MySQL 5.7 的服务,设置了 root 用户的密码为 root
,并将 SQL 脚本文件挂载到容器的 /docker-entrypoint-initdb.d
目录中,以便 MySQL 在启动时自动执行脚本。
编写 SQL 脚本
接下来,您需要编写一个 SQL 脚本文件,以便在 MySQL 启动时执行该脚本。创建一个名为 init.sql
的文件,并添加以下示例 SQL 语句:
CREATE DATABASE IF NOT EXISTS mydatabase;
USE mydatabase;
CREATE TABLE IF NOT EXISTS users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) NOT NULL
);
INSERT INTO users (name) VALUES ('Alice'), ('Bob'), ('Charlie');
上面的示例 SQL 脚本会创建一个名为 mydatabase
的数据库,并在其中创建一个名为 users
的表,并向表中插入三条记录。
运行 MySQL 服务
一切准备就绪后,打开终端,进入到包含 docker-compose.yml
和 init.sql
文件的目录中,运行以下命令启动 MySQL 服务:
docker-compose up -d
此命令将会下载 MySQL 5.7 镜像并启动 MySQL 服务。您可以使用以下命令查看服务是否正常运行:
docker ps
如果服务正常运行,您将看到一个名为 docker_mysql
的容器在运行。
验证 SQL 脚本是否执行成功
为了验证 SQL 脚本是否成功执行,您可以连接到 MySQL 数据库,并查询 users
表中的数据。使用以下命令连接到 MySQL 数据库:
docker exec -it docker_mysql mysql -uroot -proot mydatabase
接着,输入以下 SQL 查询语句查询 users
表中的数据:
SELECT * FROM users;
如果一切顺利,您将会看到输出中包含了三条记录,分别为 Alice
、Bob
和 Charlie
。
总结
通过本文的介绍,您学会了如何在 Docker 中运行 SQL 脚本并初始化 MySQL 数据库。这种方法非常适合于快速部署和测试数据库环境,节省了手动创建数据库和表的时间。
在实际项目中,您可以根据需要编写更复杂的 SQL 脚本来初始化数据库,或者将这一过程集成到 CI/CD 流程中,以实现自动化部署和测试。