數(shù)據(jù)庫遷出
#!/bin/bash
# MySQL 導(dǎo)出為 SQL 文件腳本
# 設(shè)置數(shù)據(jù)庫連接參數(shù)
source_host="x.x.x.x"
source_user="root"
source_password="123456789"
source_database="xxxxxxx"
# 設(shè)置備份文件路徑和名稱
backup_path="/home/transfer"
backup_file="${backup_path}/xxxxxxx.sql"
# 創(chuàng)建備份文件夾(如果不存在)
mkdir -p "$backup_path"
# 記錄遷移開始時間
start_time=$(date +"%Y-%m-%d %H:%M:%S")
echo "遷移開始時間:$start_time"
# mysqldump 導(dǎo)出數(shù)據(jù)到 SQL 文件干奢,添加 --single-transaction 選項
mysqldump -h$source_host -u$source_user -p$source_password --single-transaction $source_database > $backup_file
# 檢查導(dǎo)出是否成功
if [ $? -eq 0 ]; then
end_time=$(date +"%Y-%m-%d %H:%M:%S")
echo "遷移結(jié)束時間:$end_time"
# 計算遷移用時
start_timestamp=$(date -d "$start_time" +"%s")
end_timestamp=$(date -d "$end_time" +"%s")
migration_duration=$((end_timestamp - start_timestamp))
echo "數(shù)據(jù)庫導(dǎo)出為 SQL 文件完成:$backup_file"
echo "遷移用時:${migration_duration}秒"
else
echo "導(dǎo)出失敗,請檢查腳本和數(shù)據(jù)庫連接參數(shù)"
fi
數(shù)據(jù)庫導(dǎo)入
#!/bin/bash
# MySQL連接參數(shù)
MYSQL_USER="root"
MYSQL_PASSWORD="123456789"
MYSQL_DATABASE="xxxxxxx"
# SQL文件路徑
SQL_FILE="/data/transfer/xxxxxxx.sql" # 指定文件相對路徑或絕對路徑
# 記錄導(dǎo)入開始時間
start_time=$(date +"%Y-%m-%d %H:%M:%S")
echo "導(dǎo)入開始時間:$start_time"
# 導(dǎo)入SQL文件到MySQL數(shù)據(jù)庫
mysql -h 127.0.0.1 -u"$MYSQL_USER" -p"$MYSQL_PASSWORD" -D"$MYSQL_DATABASE" < "$SQL_FILE"
# 檢查導(dǎo)入是否成功
if [ $? -eq 0 ]; then
echo "SQL文件成功導(dǎo)入到MySQL數(shù)據(jù)庫糯彬。"
else
echo "導(dǎo)入SQL文件到MySQL數(shù)據(jù)庫時發(fā)生錯誤凭语。"
fi
# 記錄導(dǎo)入結(jié)束時間
end_time=$(date +"%Y-%m-%d %H:%M:%S")
echo "導(dǎo)入結(jié)束時間:$end_time"
# 計算導(dǎo)入總共時間
start_seconds=$(date -d "$start_time" +"%s")
end_seconds=$(date -d "$end_time" +"%s")
total_seconds=$((end_seconds - start_seconds))
echo "總共用時:$((total_seconds / 60)) 分鐘和 $((total_seconds % 60)) 秒"
完成!
自行測試后使用!A冒恰似扔!