mysql5.7 自动备份数据库 和数据的恢复

在网上查询数据库备份方法:

mysqldump -hhostname -uusername -ppassword -database databasename | gzip > backupfile.sql.gz

这样执行会出现问题  这里建议参数指向数据的my.cnf

这里编辑my.cnf 添加用户名和密码

注意:创建文件夹权限要够  我这里用的777  

vi /etc/my.cnf
[client]
host = localhost
user = user
password = password

下面记录我的备份和恢复处理

  1. 数据库的备份脚本:mysql_backup.sh
#!/bin/bash
backupdir=/home/task/mysql/data
time=` date +%Y-%m-%d-%H:%M:%S `
db_name=mysite
mysqldump --defaults-extra-file=/etc/my.cnf --databases $db_name | gzip > $backupdir/$time$db_name.sql.gz
find $backupdir -name "*.sql.gz" -type f -mtime +5 -exec rm -rf {} \; > /dev/null 2>&1

参考网上资料  备份数据库后压缩数据库备份文件

  1. 定时任务添加 每日凌晨备份数据库
crontab -e
0 0 * * * /home/task/mysql_backup.sh

关于数据库的恢复 

#!/bin/bash
backdir=/home/task/mysql/data
gunzip < $backdir/2019-05-25-18:01:17mysite.sql.gz | mysql --defaults-extra-file=/etc/my.cnf mysite

这里要指定恢复数据库备份文件的名称 要先解压

如果数据库备份文件没有压缩

#!/bin/bash
mysql --defaults-extra-file=/etc/my.cnf databasename < backupfile.sql

 

你可能感兴趣的:(服务器)