数据库迁出
#!/bin/bash
# MySQL 导出为 SQL 文件脚本
# 设置数据库连接参数
source_host="x.x.x.x"
source_user="root"
source_password="123456789"
source_database="xxxxxxx"
# 设置备份文件路径和名称
backup_path="/home/transfer"
backup_file="${backup_path}/xxxxxxx.sql"
# 创建备份文件夹(如果不存在)
mkdir -p "$backup_path"
# 记录迁移开始时间
start_time=$(date +"%Y-%m-%d %H:%M:%S")
echo "迁移开始时间:$start_time"
# mysqldump 导出数据到 SQL 文件,添加 --single-transaction 选项
mysqldump -h$source_host -u$source_user -p$source_password --single-transaction $source_database > $backup_file
# 检查导出是否成功
if [ $? -eq 0 ]; then
end_time=$(date +"%Y-%m-%d %H:%M:%S")
echo "迁移结束时间:$end_time"
# 计算迁移用时
start_timestamp=$(date -d "$start_time" +"%s")
end_timestamp=$(date -d "$end_time" +"%s")
migration_duration=$((end_timestamp - start_timestamp))
echo "数据库导出为 SQL 文件完成:$backup_file"
echo "迁移用时:${migration_duration}秒"
else
echo "导出失败,请检查脚本和数据库连接参数"
fi
数据库导入
#!/bin/bash
# MySQL连接参数
MYSQL_USER="root"
MYSQL_PASSWORD="123456789"
MYSQL_DATABASE="xxxxxxx"
# SQL文件路径
SQL_FILE="/data/transfer/xxxxxxx.sql" # 指定文件相对路径或绝对路径
# 记录导入开始时间
start_time=$(date +"%Y-%m-%d %H:%M:%S")
echo "导入开始时间:$start_time"
# 导入SQL文件到MySQL数据库
mysql -h 127.0.0.1 -u"$MYSQL_USER" -p"$MYSQL_PASSWORD" -D"$MYSQL_DATABASE" < "$SQL_FILE"
# 检查导入是否成功
if [ $? -eq 0 ]; then
echo "SQL文件成功导入到MySQL数据库。"
else
echo "导入SQL文件到MySQL数据库时发生错误。"
fi
# 记录导入结束时间
end_time=$(date +"%Y-%m-%d %H:%M:%S")
echo "导入结束时间:$end_time"
# 计算导入总共时间
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)) 秒"
完成!
自行测试后使用!!!