当前位置:首页 > Mysql教程 > 列表

mysql定时自动备份数据库脚本代码(linux/windows)

发布:smiling 来源: PHP粉丝网  添加日期:2014-10-08 14:31:40 浏览: 评论:0 

数据库是一个网站的核心如果没有数据库了网站就维护起来相当麻烦,那数据库的安全也是相当重复的,我们需要每天定时对数据库进行备份,本文章来给大家介绍mysql定时自动备份数据库的方法,有需要了解的朋友可参考.

操作步骤:

方法一,1、安装p7zip,由于源里面没有此包,直接下载源码安装.

地址:http://p7zip.sourceforge.net/,代码如下:

  1. wget http://sourceforge.net/projects/p7zip/files/p7zip/9.20.1/p7zip_9.20.1_src_all.tar.bz2 
  2. tar xvf p7zip_9.20.1_src_all.tar.bz2 
  3. cd p7zip_9.20.1_src_all 
  4. make && make install 
  5.  
  6. wget http://sourceforge.net/projects/p7zip/files/p7zip/9.20.1/p7zip_9.20.1_src_all.tar.bz2 
  7. tar xvf p7zip_9.20.1_src_all.tar.bz2 
  8. cd p7zip_9.20.1_src_all 
  9. make && make install 

2、备份脚本,back.sh,代码如下:

  1. #!/bin/sh 
  2. filename="/home/www/data/"`date -d last-day +%Y%m%d` 
  3. viewdate=`date -d last-day +%Y-%m-%d` 
  4. mysqlcheck -uuser -ppassword database 
  5. mysqldump -uuser -ppassword --opt --compact --skip-comments database table --where "datafield like 
  6. --phpfensi.com 
  7. '$viewdate%'" > $filename".sql" 
  8. sed -i 's/CREATE/ TABLE/&/ IF/ NOT/ EXISTS/' $filename".sql" 
  9. /usr/local/bin/7za a $filename".7z" $filename".sql" 
  10. rm $filename".sql" 

3、用cron实现每天0点自动备份,代码如下:

00 00 * * * /home/www/data/bash.sh > /dev/null 2>&1

通过这种方法,每天生成100M数据表,压缩后为7M多.

方法二,Linux 下自动备份数据库的 shell 脚本.

Linux 服务器上的程序每天都在更新 MySQL 数据库,于是就想起写一个 shell 脚本,结合 crontab,定时备份数据库,其实非常简单,主要就是使用 MySQL 自带的 mysqldump 命令.

脚本内容如下:

  1. #!/bin/sh  
  2. # File: /home/mysql/backup.sh  
  3. Database info  
  4. DB_NAME="test"  
  5. DB_USER="username"  
  6. DB_PASS="password" 
  7.  
  8. # Others vars  
  9. BIN_DIR="/usr/local/mysql/bin"  
  10. BCK_DIR="/home/mysql/backup"  
  11. DATE=`date +%F` 
  12.  
  13. # TODO  
  14. $BIN_DIR/mysqldump --opt -u$DB_USER -p$DB_PASS $DB_NAME | gzip > $BCK_DIR/db_$DATE.gz 

然后使用将此脚本加到 /etc/crontab 定时任务中,代码如下:

01 5 * * 0 mysql /home/mysql/backup.sh

好了,每周日凌晨 5:01 系统就会自动运行 backup.sh 文件备份 MySQL 数据库了,代码如下:

/home/www/inc/back

windows服务器下自动备份mysql,我们先把下面代码保存成一个bakmysql.bat文件,然后保存,位置可以随意了,代码如下:

  1. net stop mysql 
  2.  
  3. xcopy c:/mysql/data/bbs/*.* d:/db_bak/bbs/%date:~0,3%/ /y 
  4.  
  5. net start mysql 

然后我们再利用windows计划任务来操作.

1、开始-程序-附件-系统工具-计划任务.

2、添加计划任务.

3、最后一步就是指定备份时间了.

到这里就完成自动定时备份了,很简单吧.

Tags: mysql定时备份 mysql自动备份

分享到: