您的位置:首页 > 数据库 > MySQL

mysql数据库的自动备份与恢复

2012-08-27 14:27 323 查看
一,备份

1, 建立自动备份脚本

vim /root/mysql-backup.sh

#!/bin/bash

PATH=/usr/local/sbin:/usr/bin:/bin

# The Directory of Backup

BACKDIR=/backup/mysql ←
备份目录

# The Password of MySQL

ROOTPASS=********  ←
将星号替换成MySQL的root密码

# Remake the Directory of Backup ←
脚本自动运行建备份目录

rm -rf $BACKDIR

mkdir -p $BACKDIR

# Get the Name of Database

DBLIST=`ls -p /var/lib/mysql | grep / | tr -d /`
# Backup with Database

for dbname in $DBLIST ←
备份数据库中所有数据库($DBLIST可以改为单个数据库

do

mysqlhotcopy $dbname -u root -p $ROOTPASS $BACKDIR | logger -t mysqlhotcopy

done

2,给脚本给予执行权限

chmod 700 /root/mysql-backup.sh

3,运行脚本

./root/mysql-backup.sh

4查看下是否备份成功(我这里选择只单个备份数据库test2)

ll -l /backup/mysql

[root@test ~]# ll -l /backup/mysql/

总计 4

drwxr-x--- 2 mysql mysql 4096 03-24 12:20 test2

5,
让数据库备份脚本每天自动运行(计划任务用法查询相关资料)

crontab -e  ←
编辑自动运行规则(然后会出现编辑窗口,操作同vi)

00 03 * * * /root/mysql-backup.sh   ←
添加这一行到文件中,让数据库备份每天凌晨3点进行

二,恢复

bin/cp -Rf /backup/mysql/test2/ /var/lib/mysql/  ←
复制备份的数据库test到相应目录

chown -R mysql:mysql /var/lib/mysql/test/  ←
改变数据库test的归属为mysql

chmod
700 /var/lib/mysql/test2/  ←
改变数据库目录属性为700

chmod 660 /var/lib/mysql/test2/*  ←
改变数据库中数据的属性为660
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: