当前位置: 首页 > article >正文

用shell脚本,批量备份MySQL中所有数据库,并批量还原!

1,环境介绍

生产环境通常只有一个数据库,但是其他环境,测试可能不止一个数据库。需要换数据库时,就需要一个一个的备份,一两个还好,多的话就有点繁琐。

如果说直接备份整个数据库,可能将原来的系统数据库也备份过去了,而用不需要原来的系统数据库(’information_schema’, ‘mysql’, ‘performance_schema’, ‘sys’),这是用脚本就方便多了。

2,批量备份数据库脚本

#!/bin/bash

# MySQL 连接配置

USER="root"

PASSWORD="qwe123456"

HOST="192.168.200.101"

#备份路径

OUTPUT_DIR="/home/ubuntu/backup"

# 获取非系统数据库的列表

DATABASES=$(mysql -u $USER -p$PASSWORD -h $HOST -e "SELECT schema_name FROM information_schema.schemata WHERE schema_name NOT IN ('information_schema', 'mysql', 'performance_schema', 'sys');" -s --skip-column-names)

# 备份每个数据库

for DB in $DATABASES; do

    echo "Backing up database: $DB"

    mysqldump -u $USER -p$PASSWORD -h $HOST --set-gtid-purged=OFF --databases $DB > "$OUTPUT_DIR/$DB.sql"

done

echo "Backup completed!

上面备份命令,按需求添加参数,如这里用的–set-gtid-purged=OFF 不需要原来的GTID(全局事务标识符),我这里如果不加这个参数,还原报错。

ERROR 3546 (HY000) at line 24: @@GLOBAL.GTID_PURGED cannot be changed: the added gtid set must not overlap with @@GLOBAL.GTID_EXECUTED

所以加了–set-gtid-purged=OFF参数就行了。

mysqldump -u $USER -p$PASSWORD -h $HOST --set-gtid-purged=OFF --databases

3,还原数据库脚本

还原数据库,第一步,还是需要在新收据开手动创建数据库。

CREATE DATABASE your_database_name;

还原数据库脚本

#!/bin/bash

# MySQL 连接配置

USER="your_username"

PASSWORD="your_password"

HOST="localhost"

#备份sql的文件路径

INPUT_DIR="/path/to/backup/"

# 遍历备份目录中的所有 .sql 文件并导入

for FILE in $INPUT_DIR/*.sql; do

    DB_NAME=$(basename "$FILE" .sql)

    echo "Restoring database: $DB_NAME from $FILE"

    mysql -u $USER -p$PASSWORD -h $HOST $DB_NAME < "$FILE"

done

echo "Restoration completed!"

以上还原命令,也可以根据实际情况来修改参数

mysql -u $USER -p$PASSWORD -h $HOST $DB_NAME


http://www.kler.cn/a/611597.html

相关文章:

  • asp.net进销存软件WEB进销存ERP软件库存玻璃行业
  • SQLite优化实践
  • 【设计模式】策略模式(Strategy Pattern)详解
  • 5分钟快速上手Docker容器化部署:从零到实践
  • 带你刷题—公因子的数目(leetcode2427)
  • docker-操作实战
  • Visual Studio 使用 IntelliCode AI 辅助代码开发
  • 【CUDA】mnist_cuda
  • 模块学习篇#2:解析常用于YOLO等深度学习模型的注意力机制CBAM
  • Oracle常用分析诊断工具(9)——ADDM
  • Java单例设计模式详解
  • 深度学习篇---卷积网络结构
  • 【CodeReview】Jupiter(Eclipse插件)代码审查工具简介
  • Oracle补丁自动化安装步骤
  • 阶段一:Java基础语法
  • 运行前端项目报错解决方法
  • 游戏引擎学习第184天
  • MTK Android15 去掉设置中的顶部空白
  • 苹果与安卓,鸿蒙下跨设备,应用分享
  • 12届蓝桥杯—货物摆放