标签: 备份mysql

  • 定时自动备份MySQL数据库

    网上搜索的一些文章或者脚本, 经过一番摸索后, 以下方式是可行的.

     

    step1: 创建定时任务, 例如在早上1:30备份数据库. 编辑/etc/crontab文件, 添加内容:

    30 1 * * * root /home/cronDayBackupMySQL.sh

     

    step2: 创建shell脚本cronDayBackupMySQL.sh. 要非常注意脚本中的标点符号(不得不说, shell脚本是怪折磨人的)

    #!/bin/bash

    currDateStr=’date +%Y%m%d’

    mysqlBackFileName=mysql${currDateStr}

    mysqldump -u root -p db_xyz –password=1234 | gzip > /var/backups/$mysqlBackFileName.sql.gz

     

    其中, 数据库是db_xyz, 数据库root用户密码是1234, 备份的sql文件压缩存放在/var/backups目录下.

     

    解压缩gz文件也很简单, 直接试用gzip即可:

     

    gzip -d xxx.gz

  • 每天自动备份mysql数据库并发送到Email

    每天自动备份mysql数据库的脚本,并且自动发送到你指定的邮箱面,这样vpser再也不会为丢失数据烦恼啦。

     

    mysqldump -uuser -ppassword –databases db1 db2 db3 > /home/website/backups/databackup.sql

    tar zcf /home/website/backups/databackup.sql.tar.gz /home/website/backups/

    echo “主题:数据库备份” | mutt -a /home/website/backups/databackup.sql.tar.gz -s “内容:数据库备份” 你的邮箱

    rm -r /home/website/backups/*

     

    将上面的代码保存为automysqlbackup.sh

    然后利用crontab 实现自动备份,在ssh下运行,

     

    crontab -e

     

    输入以下内容:

     

    00 00 * * * /存放位置/automysqlbackup.sh

     

    这样就实现了每天00:00自动备份mysql数据库并发送到Email

    简单的说明下吧:

    第一句是一次性备份多个数据库,这个要你用root权限的用户才可以的..-u后面的是数据库用户名 -p后面的是数据库密码 无需空格 db1 db2 db3为你需要备份的数据库名。

    如果你的数据库用户名没有root这个权限,可以改为这样

     

    mysqldump -uuser -ppassword db1 > /home/website/backups/db1.sql

    mysqldump -uuser -ppassword db2 > /home/website/backups/db1.sql

    mysqldump -uuser -ppassword db3 > /home/website/backups/db1.sql

     

    第二句是将 backups 文件夹里面的数据文件压缩为文件名:databackup.sql.tar.gz

    第三句是将压缩了的数据库文件发送到指定的邮箱…..

    其中的主题:数据库备份,就是邮件的主题,内容:数据库备份,就是邮件的内用,

    /home/website/backups/databackup.sql.tar.gz 为附件