mysql 定时备份数据
标签(空格分隔): MySQL mysqldump
编写shell脚本
#!/bin/bash
USER=
"username" // 连接数据库的 用户名
PASSWORD=
"password" //连接数据库的 密码
DATABASE=
"your_database" //需要备份的数据库
BACKUP_DIR=/data/data_backup/database/
LOGFILE=/data/data_backup/database/backup.log
current=`date +
"%Y%m%d_%H%M"`
DUMPFILE=backup.
$current.sql
ARCHIVE=backup.
$current.sql.tar.gz
OPTIONS=
"-u$USER -p$PASSWORD $DATABASE"
if [ !
-d $BACKUP_DIR ]
then
mkdir -p
"$BACKUP_DIR"
fi
echo " ">>
$LOGFILE
echo "--------------------" >>
$LOGFILE
echo "BACKUP DATE:" $(date +
"%Y-%m-%d %H:%M:%S") >>
$LOGFILE
echo "-------------------" >>
$LOGFILE
cd $BACKUP_DIR
mysqldump
$OPTIONS >
$DUMPFILE
if [[ $? ==
0 ]]
then
tar czvf
$ARCHIVE $DUMPFILE >>
$LOGFILE 2>&
1
echo "[$ARCHIVE] Backup Successful!" >>
$LOGFILE
rm
-f $DUMPFILE
else
echo "Database Backup Fail!" >>
$LOGFILE
fi
echo "Backup Process Done"
find
$BACKUP_DIR -type f -mtime +
2 -name
"*.tar.gz" -exec rm
-f {} \;
配置定时任务 2.1.进入 编辑定时任务的命令:
crontab
-e 2.2. 添加一个任务
0 3 * * * sh /
data/data_backup/script/dump_timely.sh 2.3. 重启crond
service crond restart
其他 当数据存储目录不是MySQL的默认目录时,需要主要建立一个软连接。 比如在my.cnf中,数据目录长这样:
datadir=/
data/mysql_data/mysql
socket=/
data/mysql_data/mysql/mysql.sock 然后我们必须建立一个软连接
ln
-s /
data/mysql_data/mysql/mysql
.sock /
var/lib/mysql/mysql
.sock
否则MySQLdump启动不了, 并报类似下面的错误:
Can't connect
to local MySQL server
through socket '/var/lib/mysql/mysql.sock'
参考: http://www.centoscn.com/CentOS/help/2013/0817/1348.html http://www.ha97.com/910.html http://blog.csdn.net/daniel_ustc/article/details/9395971
转载请注明原文地址: https://ju.6miu.com/read-1301832.html