mysql 数据库备份shell脚本

回眸只為那壹抹淺笑 提交于 2020-01-22 08:29:44

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

#!/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脚本

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!