欢迎来到徐庆高(Tea)的个人博客网站
磨难很爱我,一度将我连根拔起。从惊慌失措到心力交瘁,我孤身一人,但并不孤独无依。依赖那些依赖我的人,信任那些信任我的人,帮助那些给予我帮助的人。如果我愿意,可以分裂成无数面镜子,让他们看见我,就像看见自己。察言观色和模仿学习是我的领域。像每个深受创伤的人那样,最终,我学会了随遇而安。
当前位置: 日志文章 > 详细内容

使用Shell脚本操作多个MySQL数据库的步骤详解

2025年08月13日 Powershell
使用 shell 脚本操作多个 mysql 数据库步骤 1: 数据库信息文件首先准备一个包含三个 mysql 数据库信息的文件,例如 db_info.txt。文件内容如下:192.168.1.100

使用 shell 脚本操作多个 mysql 数据库

步骤 1: 数据库信息文件

首先准备一个包含三个 mysql 数据库信息的文件,例如 db_info.txt。文件内容如下:

192.168.1.100 3306 root rootpassword1 database1
192.168.1.100 3307 root rootpassword2 database2
192.168.1.100 3308 root rootpassword3 database3

每行表示一个数据库,字段顺序为:

  1. 主机地址
  2. 端口号
  3. 用户名
  4. 密码
  5. 数据库名称

步骤 2: 创建 shell 脚本

编写以下脚本,命名为 create_tables.sh

#!/bin/bash

# 数据库信息文件路径
db_info_file="db_info.txt"

# 要执行的 sql 文件
sql_file="create_table.sql"

# 检查数据库信息文件是否存在
if [[ ! -f "$db_info_file" ]]; then
    echo "数据库信息文件 $db_info_file 不存在!"
    exit 1
fi

# 检查 sql 文件是否存在
if [[ ! -f "$sql_file" ]]; then
    echo "sql 文件 $sql_file 不存在!"
    exit 1
fi

# 遍历数据库信息文件
while read -r host port user password database; do
    # 确保读取的字段完整
    if [[ -z "$host" || -z "$port" || -z "$user" || -z "$password" || -z "$database" ]]; then
        echo "数据库信息文件格式不正确,跳过行:$host $port $user $database"
        continue
    fi

    echo "连接到数据库 $database ($host:$port)..."

    # 使用 mysql 命令执行 sql 文件
    mysql -h "$host" -p "$port" -u "$user" -p"$password" "$database" < "$sql_file"

    # 检查执行结果
    if [[ $? -eq 0 ]]; then
        echo "sql 文件已成功执行到 $database。"
    else
        echo "sql 文件执行到 $database 失败!"
    fi

    echo "--------------------------------------"

done < "$db_info_file"

步骤 3: 创建 sql 文件

准备一个示例 sql 文件 create_table.sql,内容如下:

create table if not exists example_table (
    id int auto_increment primary key,
    name varchar(255) not null,
    created_at timestamp default current_timestamp
);

步骤 4: 设置脚本权限并执行

为脚本赋予执行权限:

chmod +x create_tables.sh

执行脚本:

./create_tables.sh

执行流程:

  1. 脚本会读取 db_info.txt 文件中的数据库信息。
  2. 遍历每个数据库,并通过 mysql 命令连接。
  3. 对每个数据库执行 create_table.sql 中的 sql 语句。
  4. 显示每个数据库的执行结果。

示例输出:

连接到数据库 database1 (192.168.1.100:3306)...
sql 文件已成功执行到 database1。
--------------------------------------
连接到数据库 database2 (192.168.1.100:3307)...
sql 文件已成功执行到 database2。
--------------------------------------
连接到数据库 database3 (192.168.1.100:3308)...
sql 文件已成功执行到 database3。
--------------------------------------

这样,脚本可以灵活地从文件中读取多个数据库信息,并完成指定的 sql 文件执行操作!

到此这篇关于使用shell脚本操作多个mysql数据库的步骤详解的文章就介绍到这了,更多相关shell脚本操作多个mysql数据库内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!