如何使用Shell脚本连接MySQL并执行数据库脚本文件

本文旨在帮助刚入行的小白开发者了解如何使用Shell脚本连接MySQL数据库,并执行一个SQL脚本文件。整个流程将通过一个表格、代码示例、序列图和甘特图进行详细介绍。

1. 流程概述

在开始之前,我们先明确整个步骤的流程:

步骤 描述
1 编写SQL脚本
2 编写Shell脚本
3 赋予Shell脚本执行权限
4 运行Shell脚本
5 查看执行结果

2. 详细步骤及代码示例

步骤1:编写SQL脚本

首先,我们需要准备一个SQL脚本文件,这里面包含我们想要执行的SQL语句。例如,script.sql 文件的内容如下:

-- script.sql
CREATE DATABASE IF NOT EXISTS test_db;
USE test_db;
CREATE TABLE IF NOT EXISTS users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    email VARCHAR(100) NOT NULL
);
INSERT INTO users (name, email) VALUES ('Alice', 'alice@example.com');
INSERT INTO users (name, email) VALUES ('Bob', 'bob@example.com');

步骤2:编写Shell脚本

接下来,创建一个Shell脚本文件,命名为 run_mysql_script.sh,并填入以下内容:

#!/bin/bash

# 定义数据库连接参数
DB_HOST="localhost"  # 数据库主机
DB_USER="username"   # 数据库用户名
DB_PASS="password"   # 数据库密码
DB_NAME="test_db"    # 数据库名称
SCRIPT_FILE="script.sql"  # SQL脚本文件名

# 连接数据库并执行SQL脚本
mysql -h "$DB_HOST" -u "$DB_USER" -p"$DB_PASS" "$DB_NAME" < "$SCRIPT_FILE"

# 检查执行结果
if [ $? -eq 0 ]; then
    echo "SQL脚本执行成功!"
else
    echo "SQL脚本执行失败!"
fi
代码解读
  • #!/bin/bash:指定Shell解释器。
  • DB_HOSTDB_USERDB_PASSDB_NAMESCRIPT_FILE:这些是数据库连接的参数和SQL脚本文件名。
  • mysql -h "$DB_HOST" -u "$DB_USER" -p"$DB_PASS" "$DB_NAME" < "$SCRIPT_FILE":连接MySQL并执行SQL脚本。
  • if [ $? -eq 0 ]; then ... fi:检查上一个命令的执行结果。

步骤3:赋予Shell脚本执行权限

在终端中运行如下命令为Shell脚本赋予执行权限:

chmod +x run_mysql_script.sh  # 赋予执行权限

步骤4:运行Shell脚本

用以下命令运行我们的Shell脚本:

./run_mysql_script.sh  # 运行脚本

步骤5:查看执行结果

执行后,终端会显示执行结果。如果SQL脚本成功执行,会输出“SQL脚本执行成功!”;否则会显示“SQL脚本执行失败!”。

3. 序列图与甘特图

为了更清晰地理解整个操作流程,我们来看看序列图和甘特图。

3.1. 序列图

sequenceDiagram
    participant User
    participant ShellScript
    participant MySQL

    User->>ShellScript: 执行Shell脚本
    ShellScript->>MySQL: 连接数据库
    MySQL-->>ShellScript: 返回连接结果
    ShellScript->>MySQL: 执行SQL脚本
    MySQL-->>ShellScript: 返回执行结果
    ShellScript-->>User: 输出执行结果

3.2. 甘特图

gantt
    title 数据库脚本执行流程
    dateFormat  YYYY-MM-DD
    section 步骤
    编写SQL脚本      :a1, 2023-10-01, 1d
    编写Shell脚本    :after a1  , 1d
    赋予执行权限      :after a2  , 1d
    运行Shell脚本    :after a3  , 1d
    查看执行结果      :after a4  , 1d

4. 结尾

通过以上步骤,相信你已经掌握了如何编写Shell脚本以连接MySQL并执行数据库脚本文件。这是开发过程中一个基础但重要的技能。在今后的工作中,可以尝试进一步优化脚本,处理更多复杂的数据库任务,例如备份、导入导出数据等。祝你在开发的道路上越走越远!