版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/fuckomg/article/details/81392389
liunx下使用mysql的 mysqldump进行备份和还原数据操作
crontab命令可以帮助我们实现自动定时备份数据库。
备份某个数据库
#先创建备份目录
mkdir -p /var/local/backup
cd /var/local/backup
#备份数据库
mysqldump -uusername -ppassword database > database_20180101.sql
还原某个数据库
#先登陆mysql
mysql -uroot -ppass
#显示所有数据库
show databases;
#选择要还原的数据库
use database;
#还原某个数据库
source /var/local/backup/database_20180101.sql;
#退出mysql
exit;
注意:
把 username 替换为实际的用户名;
把 password 替换为实际的密码;
把 Database 替换为实际的数据库名;
crantab 定时备份
1.新建编辑备份脚本
#创建一个目录 backup/data
mkdir /root/backup/data
#进入目录
cd /root/backup/data
#创建一个.sh脚本文件
touch mysql_databse.sh
#更改脚本文件权限
chmod 755 mysql_databse.sh
#编辑脚本文件
vim mysql_database.sh
编辑备份文件
#!/bin/sh
DB_NAME="database"
DB_USER="username"
DB_PASS="password"
BIN_DIR="/usr/bin"
BCK_DIR="/root/baclup/data"
DATE=$(date +%Y%m%d_%H%M%S)
# TODO
$BIN_DIR/mysqldump --opt -u$DB_USER -p$DB_PASS $DB_NAME \
> $BCK_DIR/$DB_NAME_$DATE.sql
删除30天之前到备份数据
find /root/backup/* -mtime +30 -exec rm {} \;
dump出来的sql文件有可能很大,我们也可以开启 gzip 压缩,一般来说可以实现10倍压缩比例:也就是讲输出到文件的内容通过管道操作符让 gzip 程序处理一遍.
$BIN_DIR/mysqldump --opt -u$DB_USER -p$DB_PASS $DB_NAME | gzip \
> $BCK_DIR/$DB_NAME_$DATE.sql.gz
添加到crontab
crontab -e
添加一行,root用户不需要指定执行的用户名
1 1 * * * /root/backup/mysql_database.sh
查看crontab
crontab -l
测试任务是否执行
# tail -f /var/log/cron
Aug 3 15:50:01 iZ94bw0dj96Z CROND[15185]: (root) CMD (/usr/lib/sa/sa1 1 1)
Aug 3 16:00:01 iZ94bw0dj96Z CROND[15347]: (root) CMD (/usr/lib/sa/sa1 1 1)
Aug 3 16:01:01 iZ94bw0dj96Z CROND[15365]: (root) CMD (run-parts /etc/cron.hourly)
Aug 3 16:01:01 iZ94bw0dj96Z run-parts(/etc/cron.hourly)[15365]: starting 0anacron
Aug 3 16:01:01 iZ94bw0dj96Z run-parts(/etc/cron.hourly)[15374]: finished 0anacron
Aug 3 16:10:01 iZ94bw0dj96Z CROND[15520]: (root) CMD (/usr/lib/sa/sa1 1 1)
Aug 3 16:20:01 iZ94bw0dj96Z CROND[15695]: (root) CMD (/usr/lib/sa/sa1 1 1)
Aug 3 16:30:01 iZ94bw0dj96Z CROND[15864]: (root) CMD (/usr/lib/sa/sa1 1 1)
Aug 3 16:40:01 iZ94bw0dj96Z CROND[16026]: (root) CMD (/usr/lib/sa/sa1 1 1)
Aug 3 16:50:01 iZ94bw0dj96Z CROND[16196]: (root) CMD (/usr/lib/sa/sa1 1 1)