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

特定数据库的备份脚本

该脚本 mysql_backup.sh 是一个 MySQL 数据库的备份脚本,以下是它的工作原理和需要注意的细节: 

脚本内容分析

1.设置时间变量 TIME :

TIME=`date +%F_%H-%M-%S`

该变量 TIME 存储当前日期和时间,格式为 YYYY-MM-DD_HH-MM-SS,用于生成备份文件的时间戳。

2. 定义备份目录 DIR :

DIR=/backup

 所有备份文件将存储在 /backup 目录下。

3.  定义数据库名 DB 和密码 PASS

DB=hellodb
PASS=magedu

DB 为要备份的数据库名称PASS 为数据库的密码

 4. 创建备份目录:

[ -d $DIR ] || mkdir $DIR

检查 /backup 目录是否存在,如果不存在则创建该目录。 

5. 执行 mysqldump 命令

mysqldump -uroot -p "$PASS" -F -E -R --triggers --single-transaction --master-data=2 --default-character-set=utf8 -q -B $DB | gzip >
${DIR}/${DB}_${TIME}.sql.gz
  • -u root:使用 root 用户执行备份。
  • -p "$PASS":数据库的密码。
  • -F:刷新日志,生成一个新的二进制日志文件(用于增量备份)。
  • -E:导出数据库的事件。
  • -R:导出存储过程和函数。
  • --triggers:导出触发器。
  • --single-transaction:在一个事务中执行备份(适合 InnoDB 表)。
  • --master-data=2:记录当前二进制日志位置,用于主从复制配置。
  • --default-character-set=utf8:设置字符集为 UTF-8。
  • -q:逐行导出数据,减少内存使用。
  • -B $DB:指定要备份的数据库。
  • gzip:将导出的 SQL 文件压缩。
  • > ${DIR}/${DB}_${TIME}.sql.gz:将输出保存为带时间戳的 .sql.gz 文件。

注意事项

  1. 脚本中的密码安全问题:在生产环境中,不建议将数据库密码直接写在脚本里。可以使用 .my.cnf 文件配置 MySQL 登录凭据。
  2. 备份目录的权限:确保 /backup 目录具有适当的权限,以便用户可以写入。
  3. 数据库用户权限:运行备份的 MySQL 用户需要有足够的权限(如 SELECT, SHOW VIEW, TRIGGER)。
  4. 备份文件的清理:此脚本没有删除旧的备份文件,建议添加清理机制以避免存储空间耗尽。

此脚本可以通过 crontab 设置定时任务,实现自动化数据库备份。

http://www.lryc.cn/news/482418.html

相关文章:

  • uni-app打包后报错云服务空间未关联
  • FPGA学习(10)-数码管
  • C++(继承)
  • 华为OD机试 - RSA加密算法(Java 2024 E卷 100分)
  • 分组校验在Spring中的应用详解
  • torch.nn.**和torch.nn.functional.**的区别
  • Air780E基于LuatOS编程开发
  • 贪心算法-汽车加油
  • Qt信号和槽-->day04
  • 【Linux】为终端命令自定义快件键并弹窗提醒 设置快捷键切换网络代理(Network Proxy)Disabled/Manual 并弹窗提醒
  • 十六:Spring Boot依赖 (1)-- spring-boot-starter 依赖详解
  • 讲讲关于SNMP与智能PDU插座
  • 在CentOS下安装RabbitMQ
  • 前端使用Canvas实现网页电子签名(兼容移动端和PC端)
  • 什么是OSTRPT报文?
  • PICO+Unity MR空间锚点
  • electron 中 contextBridge 作用
  • 15分钟学 Go 第 42 天:RESTful API设计
  • 如何安全的中断一个运行中的线程?
  • 【121. 买卖股票的最佳时机】——贪心算法/动态规划
  • LLMs之Calculate:利用大语言模型技术基于文本内容实现数字计算能力的简介、常用方法、代码实现之详细攻略
  • LeetCode题练习与总结:判断子序列--392
  • json数据结构的转换
  • mysql删除语句:@Update(“TRUNCATE TABLE employee“)讲解
  • 如何修改浏览器指纹?
  • 实现3D热力图
  • GEE ui界面实现:用户自画多边形, 按面积比例在多边形中自动生成样点,导出多边形和样点shp,以及删除上一组多边形和样点(有视频效果展示)
  • React diff算法和Vue diff算法的主要区别
  • WSL 2 中 FastReport 与 FastCube 的设置方法与优化策略
  • 《线性代数》学习笔记