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
none