欢迎来到飞鸟慕鱼博客,开始您的技术之旅!
当前位置: 首页知识笔记正文

mysql备份数据库命令,定时备份数据库不备份其中的几个表

墨初 知识笔记 92阅读

MySQL 提供了 mysqldump 命令来实现导出数据库命令用法如下

mysqldump -u root -p[password] [database_name] > [backup].sql

在 Linux 服务器中结合 crontab 定时命令实现定时备份数据库同时支持压缩、备份日志、定期清理等功能。

1. 备份执行脚本

新建 mysql 的备份命令脚本

$ vi db_backup.sql

复制以下内容

#!/bin/bash# 数据库名称database_namemydbmysql_password# 备份文件保存地址backup_dir/mydata/backup/mydb# 备份文件名前缀backup_prefixdemo# 备份文件的有效期单位为daybackup_days30dddate %Y-%m-%d-%H-%M-%Sbackup_file$backup_dir/$backup_prefix-$dd.sqlif [ ! -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 数据库功能。

注该定时任务会在系统重启后依旧保留不用担心重新设置

标签:
声明:无特别说明,转载请标明本文来源!