mysqldump备份详解

来自:新钛云服订阅号(微信号:newtyun),作者:傅雨斌

数据备份是一个网站能够正常运营的保障,数据备份包括网站源码备份和数据库备份,如果你使用的是ACCESS数据库,那么直接使用FTP下载数据库文件就可以了,但如果你使用了PHP+MYSQL进行网站建设,数据库备份就没有那么容易了。


常见的mysql备份方法有很多种比如说:mysqldump mysqbackup cp 等等,本文主要介绍mysqldump的手动备份和脚本备份。


一、mysql手动备份

mysql -u root -p  进入mysql

show database;查看需要备份的库

find / -name mysql 查看mysql的路径

rpm -ql mysql 查看mysql的安装包安装到了哪个路径

mysqldump -u root -p密码 库 >/路径/名字.sql    将库指定备份到路径下


二、mysql自动备份


#!/bin/bash

date=`date +"%Y%m%d%H%M%S"`#时间

dbname=/usr/local/src/mysql-XXdb/XXdb_$date#备份的库的路径和文件名称时间

cd /usr/local/src/mysql-XXdb#进入到备份库的路径下

mysqldump -uroot -pXXXXX XXdb >$dbname.sql#备份

If

[ "$?" == 0 ];then#这里 $? 的意思是得到上一条命令执行后的返回值,0代表成功,其他代表错误,并且将记录输出到日志里。

echo $date" mysqldump sucess " >>mysql-logfile

else

echo $date" mysqldump failed " >>mysql-logfile

fi

tar -czPf $dbname.tar.gz $dbname.sql#压缩dbname 里面的sql文件,这里如果只用-czf会报错,所以加参数-p 设置绝对路径 一般不建议使用

               if

       [ "$?" == 0 ];then

       echo $date" tar sucess " >>mysql-logfile

       else

       echo $date" tar dailed " >>mysql-logfile

       fi

rm -rf $dbname.sql#删除dbname 里面的sql文件

find /usr/local/src/mysql-XXdb -mtime +30 -name "*.tar.gz" -exec rm -rf {} ;

#查找路径下面30天前后缀带tar.gz的所有文件并且删除


然后添加计划任务

Crontab -e

00 00 * * * /路径 #这里我设置每日凌晨启动一次脚本

Service crond reload #加载服务


当然数据只是暂时备份在本地下面,如果服务器出现灾难问题,那么数据还是会丢失。所以我们可以用异地备份将数据备份到另外的服务器上,用SCP或者rsync写crontab都是可以的,至此mysql手动备份以及脚本自动化备份完成。

推荐↓↓↓
iOS开发