mysql备份与恢复脚本

#!/bin/bash

# MySQL 远程服务器的连接信息
MYSQL_USER="root"             # MySQL 用户名
MYSQL_PASSWORD="password"     # MySQL 密码
MYSQL_HOST="192.168.42.18"    # 远程 MySQL 服务器 IP 地址

# 备份目录设置
BACKUP_DIR="/path/to/backup"  # 备份文件存储目录
DATE=$(date +'%Y-%m-%d_%H-%M-%S')  # 当前日期和时间
BACKUP_FILE="$BACKUP_DIR/mysql_backup_$DATE.sql"  # 备份文件名

# 检查备份目录是否存在,如果不存在则创建
if [ ! -d "$BACKUP_DIR" ]; then
  mkdir -p "$BACKUP_DIR"
fi

# 执行 mysqldump 进行全量备份
echo "开始备份 MySQL 数据库..."
mysqldump -u "$MYSQL_USER" -p"$MYSQL_PASSWORD" -h "$MYSQL_HOST" --all-databases --single-transaction --quick --lock-tables=false > "$BACKUP_FILE"

# 检查备份是否成功
if [ $? -eq 0 ]; then
  echo "备份成功,备份文件保存在: $BACKUP_FILE"
else
  echo "备份失败,请检查 MySQL 连接信息和权限设置!"
fi

脚本说明:

  1. MySQL 连接信息:

    • MYSQL_USER 设置为 MySQL 的用户名(如 root)。
    • MYSQL_PASSWORD 设置为该用户的密码。
    • MYSQL_HOST 设置为 MySQL 服务器的 IP 地址(例如:192.168.42.18)。
  2. 备份目录:

    • 备份文件将保存到指定的目录(/path/to/backup),你需要根据实际情况修改这个路径。
  3. mysqldump 参数:

    • --all-databases:备份所有数据库。
    • --single-transaction:使用事务来备份数据库,确保备份一致性。
    • --quick:在备份过程中尽可能避免内存消耗,适用于大数据表。
    • --lock-tables=false:避免在备份过程中锁定表,适用于不希望锁表的环境。
  4. 文件名:

    • 备份文件名包含当前日期和时间,以便区分不同时间的备份。

 

 

#!/bin/bash

# MySQL 远程服务器的连接信息
MYSQL_USER="root"             # MySQL 用户名
MYSQL_PASSWORD="password"     # MySQL 密码
MYSQL_HOST="192.168.42.18"    # 远程 MySQL 服务器 IP 地址

# 备份文件路径
BACKUP_FILE="/path/to/backup/mysql_backup_2024-12-23_00-00-00.sql"  # 需要恢复的备份文件

# 检查备份文件是否存在
if [ ! -f "$BACKUP_FILE" ]; then
  echo "备份文件不存在: $BACKUP_FILE"
  exit 1
fi

# 执行数据库恢复
echo "开始恢复数据库..."

# 使用 mysql 命令导入备份文件
mysql -u "$MYSQL_USER" -p"$MYSQL_PASSWORD" -h "$MYSQL_HOST" < "$BACKUP_FILE"

# 检查恢复是否成功
if [ $? -eq 0 ]; then
  echo "数据库恢复成功!"
else
  echo "数据库恢复失败,请检查 MySQL 连接信息和备份文件!"
  exit 1
fi

 

脚本说明:

  1. MySQL 连接信息:

    • MYSQL_USERMYSQL_PASSWORD 分别为 MySQL 用户名和密码。
    • MYSQL_HOST 是 MySQL 服务器的 IP 地址(如 192.168.42.18)。
  2. 备份文件路径:

    • BACKUP_FILE 是你要恢复的备份文件的完整路径。请将路径替换为实际的备份文件路径。
  3. 恢复过程:

    • 使用 mysql 命令将备份文件导入到 MySQL 中。< 符号用于将 SQL 文件的内容输入到 MySQL 命令中执行。
  4. 恢复检查:

    • 脚本通过 $? 来检查 mysql 命令是否执行成功。如果恢复成功,输出“数据库恢复成功!”;如果失败,输出错误信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值