mysql數(shù)據(jù)庫(kù)導(dǎo)出腳本
vim exoprtMysql.sh
#!/bin/bash
# 定義MySQL連接參數(shù)
DB_HOST="x.x.x.x"
DB_USER="root"
DB_PASSWORD="xxxxxxxx"
DB_PORT=3306
# 要遷移的數(shù)據(jù)庫(kù)列表亭珍,可以根據(jù)需要添加或修改
DATABASES=("db1" "db2")
# 遷移數(shù)據(jù)庫(kù)函數(shù)
migrate_databases() {
for db in "${DATABASES[@]}"; do
echo "開始遷移數(shù)據(jù)庫(kù) $db"
start_time=$(date +%s)
mysqldump -h $DB_HOST -P $DB_PORT -u $DB_USER -p$DB_PASSWORD $db > "${db}.sql"
if [ $? -eq 0 ]; then
end_time=$(date +%s)
duration=$((end_time - start_time))
echo "數(shù)據(jù)庫(kù) $db 遷移成功敷钾,文件名為 ${db}.sql,耗時(shí) ${duration} 秒"
else
echo "數(shù)據(jù)庫(kù) $db 遷移失敗"
fi
done
}
# 調(diào)用遷移函數(shù)
migrate_databases
設(shè)置可執(zhí)行權(quán)限
chmod +x exoprtMysql.sh
執(zhí)行腳本
./exoprtMysql.sh
腳本執(zhí)行時(shí)間較長(zhǎng)肄梨,后臺(tái)執(zhí)行腳本
nohup ./exoprtMysql.sh >exoprt.log 2>&1 &
mysql數(shù)據(jù)導(dǎo)入腳本
vim importMysql.sh
#!/bin/bash
# 函數(shù):輸出日志信息
log() {
echo "[`date '+%Y-%m-%d %H:%M:%S'`] $@"
}
# 函數(shù):導(dǎo)入數(shù)據(jù)庫(kù)
import_database() {
local db_host="$1"
local db_port="$2"
local db_user="$3"
local db_password="$4"
local db_name="$5"
local sql_file="$6"
log "開始導(dǎo)入數(shù)據(jù)庫(kù) $db_name 從文件 $sql_file"
start_time=$(date +%s)
# 創(chuàng)建數(shù)據(jù)庫(kù)
mysql -h $db_host -P $db_port -u $db_user -p$db_password -e "CREATE DATABASE IF NOT EXISTS $db_name"
if [ $? -ne 0 ]; then
log "創(chuàng)建數(shù)據(jù)庫(kù) $db_name 失敗"
return 1
fi
# 導(dǎo)入數(shù)據(jù)
mysql -h $db_host -P $db_port -u $db_user -p$db_password $db_name < "$sql_file"
if [ $? -eq 0 ]; then
end_time=$(date +%s)
duration=$((end_time - start_time))
log "數(shù)據(jù)庫(kù) $db_name 從文件 $sql_file 導(dǎo)入成功阻荒,耗時(shí) ${duration} 秒"
else
log "數(shù)據(jù)庫(kù) $db_name 從文件 $sql_file 導(dǎo)入失敗"
return 1
fi
}
# 主程序
main() {
local db_host="x.x.x.x"
local db_user="root"
local db_password="xxxxxxxx"
local db_port=3306
# 要導(dǎo)入的數(shù)據(jù)庫(kù)文件列表
local sql_files=("db1.sql" "db2.sql")
for sql_file in "${sql_files[@]}"; do
db_name="${sql_file%.sql}" # 提取數(shù)據(jù)庫(kù)名
import_database "$db_host" "$db_port" "$db_user" "$db_password" "$db_name" "$sql_file"
if [ $? -ne 0 ]; then
log "導(dǎo)入數(shù)據(jù)庫(kù) $db_name 失敗"
# 可以添加邏輯處理失敗情況的代碼
fi
done
}
# 執(zhí)行主程序
main
設(shè)置可執(zhí)行權(quán)限
chmod +x importMysql.sh
執(zhí)行
./importMysql.sh
腳本執(zhí)行時(shí)間較長(zhǎng),后臺(tái)執(zhí)行腳本
nohup ./importMysql.sh >impor.log 2>&1 &