mysql数据库备份

首先需要在mysql的配置文件里

vi /etc/my.cnf

加上

[client]
host = localhost
user = root
password = '*********'

然后设置shell脚本文件


#!/bin/bash
#保留备份个数,会删除时间较早的.dump备份
number=7
#设置备份保存路径,替换成自己的备份保存路径
backup_dir=/usr/local/mysql/backdata
#日期格式
dd=`date +%Y%m%d`

#数据库链接地址
host='localhost'
#数据库看装目录,如该文件执行生成的.dump文件没有数据则在tool前加上这一变量,反之则去掉
mysqldump=/usr/bin/mysqldump
#将要备份的数据库名称,yourdb替换成自己要备份的数据库名,此脚本只支持备份一个数据库,多数据库mysqldump用法
database_name=all-databases
#远程备份
#$mysql$tool -h$host -u $username -p$password --databases $database_name > $backup_dir/$database_name-$dd.dump
#本地备份
$mysqldump --defaults-extra-file=/etc/my.cnf --all-databases -x  > $backup_dir/$dd.sql
#写创建备份日志
#echo "create $backup_dir/$database_name-$dd.dump" >> $backup_dir/log.txt

#查询本目录下所有备份文件
#查询备份文件是按照备份文件的生成时间来计算的
FileNum=$(ls -l $backup_dir/*.sql | grep ^- | wc -l)
#echo "Number of backup files:"$FileNum >> $backup_dir/log.txt
while(( $FileNum > $number ))
do
#取最旧的文件,*.*可以改为指定文件类型
OldFile=$(ls -rt $backup_dir/*.sql | head -1)
#echo "Delete File:"$backup_dir'/'$OldFile >> $backup_dir/log.txt
rm -f $OldFile
let "FileNum--"
done


第三部,加入定时脚本


01 00 * * * /usr/local/mysql/backdata/back.sh