定时备份MySQL数据库
短信预约 -IT技能 免费直播动态提醒
MySQL 提供了 mysqldump
命令来实现导出数据库,命令用法如下:
mysqldump -u root -p[password] [database_name] > [backup].sql
在 Linux 服务器中结合 crontab
定时命令实现定时备份数据库,同时支持压缩、备份日志、定期清理等功能。
1. 备份执行脚本
新建 mysql 的备份命令脚本
$ vi db_backup.sql
复制以下内容:
#!/bin/bash# 数据库名称database_name="mydb"mysql_password=""# 备份文件保存地址backup_dir="/mydata/backup/mydb"# 备份文件名前缀backup_prefix="demo"# 备份文件的有效期,单位为daybackup_days="30"dd=`date +%Y-%m-%d-%H-%M-%S`backup_file="$backup_dir/$backup_prefix-$dd.sql"if [ ! -d $backup_dir ]; then mkdir -p $backup_dir; fimysqldump -u root -p$mysql_password $database_name > $backup_file# 压缩sql文件gzip -f $backup_file# 写创建备份日志echo "create $backup_dir/$database_name-$dd.dupm" >> $backup_dir/log.txt# 清除过期的文件find $backup_dir -name "$backup_prefix*.sql.gz" -mtime +$backup_days -exec rm {} \;
至此,执行该脚本,可以生成压缩的数据库.sql文件
2. 定时任务
给 shell 设置执行权限:
$ chmod +x db_backup.sql
使用 crontab
命令定期执行脚本
# 编辑 cron 脚本文件$ sudo crontab -e
在打开的配置文件中追加以下内容:
# 示例为每天凌晨2点30分执行备份脚本文件# 注意修改要执行的脚本的路径30 2 * * * /root/bin/db_backup.sh
检查定时任务:
$ crontab -l# 结果会包含新增加的定时任务# 30 2 * * * /root/bin/db_backup.sh
至此实现了定时备份 MySQL 数据库功能。
注:该定时任务会在系统重启后依旧保留,不用担心重新设置
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341