使用 Docker Shell 执行 MySQL SQL 语句

在现代软件开发中,容器化技术已经成为一种流行的方法。Docker 是最广泛使用的容器管理平台之一,它让应用的部署和管理变得更加高效。而 MySQL 作为一种流行的关系型数据库,常与 Docker 联合使用,使数据库更易于管理。本文将介绍如何在 Docker 容器中使用 Shell 命令执行 MySQL SQL 语句,并提供详细的代码示例。

一、Docker 和 MySQL 简介

Docker 是一个开源的容器化平台,使得开发者能够创建、部署和运行应用程序,而不必担心与环境互相干扰。MySQL 是一种开源的关系型数据库管理系统,广泛应用于各种项目中,以其高效、灵活的特点受到开发者的喜爱。

安装 Docker

若您还未安装 Docker,请参照如下步骤进行安装:

  1. 首先更新系统包
sudo apt-get update
  • 1.
  1. 安装 Docker
sudo apt-get install docker.io
  • 1.
  1. 启动 Docker 服务
sudo systemctl start docker
sudo systemctl enable docker
  • 1.
  • 2.
启动 MySQL 容器

在使用 Docker 执行 MySQL SQL 语句之前,您需要启动一个 MySQL 容器。使用以下命令来运行 MySQL 5.7 的 Docker 镜像:

docker run --name mysql-server -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:5.7
  • 1.

在这个命令中,我们使用 -e 标志设置了 MySQL 的根用户密码。

验证 MySQL 容器是否运行

您可以使用以下命令检查 MySQL 容器的运行状态:

docker ps
  • 1.

如果容器正在运行,您应该看到类似于以下的输出:

CONTAINER IDIMAGECOMMANDCREATEDSTATUSPORTSNAMES
abcdef123456mysql:5.7“docker-entrypoint.s…”2 minutes agoUp 2 minutes3306/tcpmysql-server

二、在 Docker 中执行 MySQL SQL 语句

1. 进入 MySQL 容器

要在 Docker 容器中执行 SQL 语句,您首先需要进入 MySQL 容器。可以使用以下命令进入容器的交互式终端:

docker exec -it mysql-server mysql -uroot -p
  • 1.

您会被要求输入密码(上面设置的 my-secret-pw)。

2. 创建数据库和表

一旦进入 MySQL 提示符,您可以创建一个数据库和一张表。

CREATE DATABASE example_db;
USE example_db;

CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    email VARCHAR(100) NOT NULL UNIQUE
);
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.

您可以使用以下命令查看创建的数据库和表:

SHOW DATABASES;
SHOW TABLES;
  • 1.
  • 2.
3. 插入数据

接下来,您可以在 users 表中插入一些数据。

INSERT INTO users (name, email) VALUES ('John Doe', 'john@example.com');
INSERT INTO users (name, email) VALUES ('Jane Smith', 'jane@example.com');
  • 1.
  • 2.
4. 查询数据

您可以通过 SQL 查询来查看插入的数据:

SELECT * FROM users;
  • 1.
查询结果示例
idnameemail
1John Doe john@example.com
2Jane Smith jane@example.com
5. 退出 MySQL 提示符

完成所有操作后,可以通过输入 exit 退出 MySQL 提示符。

三、使用 Shell 执行 MySQL SQL

除了进入容器的交互式终端外,您还可以直接通过 Docker Shell 执行 SQL 语句。以下是一个示例:

docker exec -i mysql-server mysql -uroot -pmy-secret-pw -e "SELECT * FROM example_db.users;"
  • 1.

在这个命令中,我们使用 -i 标志表示输入,并通过 -e 参数传递 SQL 语句。

四、状态图表示

接下来,我们可以使用 Mermaid 语法绘制一个状态图,表示 Docker 和 MySQL 之间的交互。

Docker_Container MySQL_Running SQL_Commands Data_Manipulated

结尾

本文介绍了如何在 Docker 容器中使用 Shell 命令执行 MySQL SQL 语句。我们首先设置了 Docker 和 MySQL 环境,然后展示了如何创建数据库和表、插入数据以及执行查询,最后总结了如何直接通过 Shell 执行 SQL 语句。希望本文对您在使用 Docker 和 MySQL 时有所帮助!如果您对相关技术有进一步的需求和问题,欢迎留言讨论。