Docker MySQL 运行 SQL 脚本

Docker MySQL 运行 SQL 脚本

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.ymlinit.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;

如果一切顺利,您将会看到输出中包含了三条记录,分别为 AliceBobCharlie

总结

通过本文的介绍,您学会了如何在 Docker 中运行 SQL 脚本并初始化 MySQL 数据库。这种方法非常适合于快速部署和测试数据库环境,节省了手动创建数据库和表的时间。

在实际项目中,您可以根据需要编写更复杂的 SQL 脚本来初始化数据库,或者将这一过程集成到 CI/CD 流程中,以实现自动化部署和测试。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程