当前位置:数据库 > MySQL >>

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

操作步骤:

方法一

1、安装p7zip:由于源里面没有此包,直接下载源码安装。

地址:http://p7zip.sourceforge.net/

 代码如下 复制代码

wget http://sourceforge.net/projects/p7zip/files/p7zip/9.20.1/p7zip_9.20.1_src_all.tar.bz2
tar xvf p7zip_9.20.1_src_all.tar.bz2
cd p7zip_9.20.1_src_all
make && make install

wget http://sourceforge.net/projects/p7zip/files/p7zip/9.20.1/p7zip_9.20.1_src_all.tar.bz2
tar xvf p7zip_9.20.1_src_all.tar.bz2
cd p7zip_9.20.1_src_all
make && make install


2、备份脚本(back.sh):

 代码如下 复制代码

#!/bin/sh
filename="/home/www/data/"`date -d last-day +%Y%m%d`
viewdate=`date -d last-day +%Y-%m-%d`
mysqlcheck -uuser -ppassword database
mysqldump -uuser -ppassword --opt --compact --skip-comments database table --where "datafield like

'$viewdate%'" > $filename".sql"
sed -i 's/CREATE/ TABLE/&/ IF/ NOT/ EXISTS/' $filename".sql"
/usr/local/bin/7za a $filename".7z" $filename".sql"
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 命令。

脚本内容如下:

 代码如下 复制代码

#!/bin/sh
# File: /home/mysql/backup.sh
# Database info
DB_NAME="test"
DB_USER="username"
DB_PASS="password"

# Others vars
BIN_DIR="/usr/local/mysql/bin"
BCK_DIR="/home/mysql/backup"
DATE=`date +%F`

# TODO
$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文件,然后保存。位置可以随意了。

 代码如下 复制代码

net stop mysql

xcopy c:/mysql/data/bbs/*.* d:/db_bak/bbs/%date:~0,3%/ /y

net start mysql

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

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

2、添加计划任务。

3、最后一步就是指定备份时间了。
到这里就完成自动定时备份了,很简单吧。

补充:数据库,mysql教程
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,