mysqldump迁移数据库脚本

2024-01-09  本文已影响0人  自由如风才是少年的梦

数据库迁出

#!/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)) 秒"

完成!
自行测试后使用!!!

上一篇 下一篇

猜你喜欢

热点阅读