mysql 数据库备份shell脚本

今天大样做了个简单的数据库备份脚本

#!/bin/bash
 
# Database info bakupmysql  TANK 2009/11/04   
DB_USER="user"                                  #用户名   
DB_PASS="password"                                  #密码   
 DATE=`date '+%Y%m%d-%H%M'`              #要备份的日期      
BIN_DIR="/usr/bin"
BCK_DIR="/usr/local/database/database_bak/$DATE"               #备份路径       
LogFile="/usr/local/database/data_backup.log"                  #日志路劲
  
if [ ! -d $BCK_DIR ];
then 
mkdir -p "$BCK_DIR"
fi

echo "=================================== $DATE backup"===============================>>$LogFile

cd $BCK_DIR  


#需要备份的库
DB_NAMES
=("db1" "db2")
for
dbName in ${DB_NAMES[@]}; do echo "begin backup $dbName...">>$LogFile #备份 ${BIN_DIR}/mysqldump --opt -h 192.168.1.104 -u${DB_USER} -p${DB_PASS} $dbName > $BCK_DIR/$dbName.sql if [[ $?==0 ]]; then echo "backup success!">>$LogFile else echo "backup Fail! Fail Fail Fail Fail ">>$LogFile fi echo "">>$LogFile done


当时遇到一个问题:mysqldump: Got error: 1045: Access denied for user 'root'@'localhost' (using
password: YES) when trying to connect

解决方法:

grant all privileges on *.* to root@'localhost' identified by 'password'; 

我这里用的是ip地址,如果是本地可以用localhost。

为脚本添加可执行权限: chmod +x /usr/sbin/DataBackup

如果需要定时执行备份命令的,只需将下面这段代码放到crontab 文件(sudo vim /etc/crontab)中去就可以了:

01 1 * * * root /usr/sbin/MysqlDataBackup #它代表着将于每天1点执行DataBackup脚本

posted @ 2012-09-14 11:23  为啥  Views(265)  Comments(0Edit  收藏  举报