Linux下用shell对Mysql进行热备份

针对整个mysql数据库进行全局热备份,恢复的时候可以覆盖恢复,恢复的时候必须是同版本,如果是迁移或者升级建议使用导出为sql文本.
在使用脚本的时候请定义root的密码
可以把脚本放入crond定时执行,对于已经存在的目录会自动重命名.

#!/bin/bash
PATH=/usr/local/sbin:/usr/bin:/bin
BACKDIR=/data/mysql_backup
ROOTUSER=youuser
ROOTPASS=youpassword
if [ -d $BACKDIR ]; then mv $BACKDIR $BACKDIR$(date +"-%Y-%m-%d-%H-%M-%S"); fi
mkdir -p $BACKDIR
for DATANAME in `ls -p /var/lib/mysql | grep / | tr -d /`  ; do mysqlhotcopy $DATANAME -u $ROOTUSER -p $ROOTPASS $BACKDIR; done      

在使用前请确认是否安装了perl-DBD
Centos/Redhat

yum install perl-DBD-mysql

debian/ubuntu

apt-get install libdbd-mysql-perl

添加新评论 »