最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用Shell腳本操作多個MySQL數(shù)據(jù)庫的步驟詳解

 更新時間:2025年08月13日 10:00:32   作者:會滑冰的北極熊  
本文介紹如何通過Shell腳本批量操作多個MySQL數(shù)據(jù)庫,包含創(chuàng)建數(shù)據(jù)庫信息文件、編寫執(zhí)行腳本、準(zhǔn)備SQL文件及設(shè)置權(quán)限等步驟,實(shí)現(xiàn)自動遍歷連接各數(shù)據(jù)庫并執(zhí)行指定SQL語句創(chuàng)建表的操作,需要的朋友可以參考下

使用 Shell 腳本操作多個 MySQL 數(shù)據(jù)庫

步驟 1: 數(shù)據(jù)庫信息文件

首先準(zhǔn)備一個包含三個 MySQL 數(shù)據(jù)庫信息的文件,例如 db_info.txt。文件內(nèi)容如下:

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

每行表示一個數(shù)據(jù)庫,字段順序?yàn)椋?/p>

  1. 主機(jī)地址
  2. 端口號
  3. 用戶名
  4. 密碼
  5. 數(shù)據(jù)庫名稱

步驟 2: 創(chuàng)建 Shell 腳本

編寫以下腳本,命名為 create_tables.sh。

#!/bin/bash

# 數(shù)據(jù)庫信息文件路徑
DB_INFO_FILE="db_info.txt"

# 要執(zhí)行的 SQL 文件
SQL_FILE="create_table.sql"

# 檢查數(shù)據(jù)庫信息文件是否存在
if [[ ! -f "$DB_INFO_FILE" ]]; then
    echo "數(shù)據(jù)庫信息文件 $DB_INFO_FILE 不存在!"
    exit 1
fi

# 檢查 SQL 文件是否存在
if [[ ! -f "$SQL_FILE" ]]; then
    echo "SQL 文件 $SQL_FILE 不存在!"
    exit 1
fi

# 遍歷數(shù)據(jù)庫信息文件
while read -r HOST PORT USER PASSWORD DATABASE; do
    # 確保讀取的字段完整
    if [[ -z "$HOST" || -z "$PORT" || -z "$USER" || -z "$PASSWORD" || -z "$DATABASE" ]]; then
        echo "數(shù)據(jù)庫信息文件格式不正確,跳過行:$HOST $PORT $USER $DATABASE"
        continue
    fi

    echo "連接到數(shù)據(jù)庫 $DATABASE ($HOST:$PORT)..."

    # 使用 mysql 命令執(zhí)行 SQL 文件
    mysql -h "$HOST" -P "$PORT" -u "$USER" -p"$PASSWORD" "$DATABASE" < "$SQL_FILE"

    # 檢查執(zhí)行結(jié)果
    if [[ $? -eq 0 ]]; then
        echo "SQL 文件已成功執(zhí)行到 $DATABASE。"
    else
        echo "SQL 文件執(zhí)行到 $DATABASE 失??!"
    fi

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

done < "$DB_INFO_FILE"

步驟 3: 創(chuàng)建 SQL 文件

準(zhǔn)備一個示例 SQL 文件 create_table.sql,內(nèi)容如下:

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: 設(shè)置腳本權(quán)限并執(zhí)行

為腳本賦予執(zhí)行權(quán)限:

chmod +x create_tables.sh

執(zhí)行腳本:

./create_tables.sh

執(zhí)行流程:

  1. 腳本會讀取 db_info.txt 文件中的數(shù)據(jù)庫信息。
  2. 遍歷每個數(shù)據(jù)庫,并通過 mysql 命令連接。
  3. 對每個數(shù)據(jù)庫執(zhí)行 create_table.sql 中的 SQL 語句。
  4. 顯示每個數(shù)據(jù)庫的執(zhí)行結(jié)果。

示例輸出:

連接到數(shù)據(jù)庫 database1 (192.168.1.100:3306)...
SQL 文件已成功執(zhí)行到 database1。
--------------------------------------
連接到數(shù)據(jù)庫 database2 (192.168.1.100:3307)...
SQL 文件已成功執(zhí)行到 database2。
--------------------------------------
連接到數(shù)據(jù)庫 database3 (192.168.1.100:3308)...
SQL 文件已成功執(zhí)行到 database3。
--------------------------------------

這樣,腳本可以靈活地從文件中讀取多個數(shù)據(jù)庫信息,并完成指定的 SQL 文件執(zhí)行操作!

到此這篇關(guān)于使用Shell腳本操作多個MySQL數(shù)據(jù)庫的步驟詳解的文章就介紹到這了,更多相關(guān)Shell腳本操作多個MySQL數(shù)據(jù)庫內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論

永胜县| 青河县| 石泉县| 民权县| 平山县| 元氏县| 马公市| 友谊县| 句容市| 成武县| 茂名市| 墨玉县| 赞皇县| 永宁县| 贡嘎县| 大英县| 青田县| 肥乡县| 泾阳县| 阳信县| 桦川县| 景泰县| 昌吉市| 天峻县| 鄱阳县| 洱源县| 赤城县| 光山县| 土默特右旗| 仁寿县| 时尚| 黄梅县| 佛教| 繁昌县| 米易县| 荃湾区| 汤原县| 龙口市| 舞钢市| 孟村| 宣化县|