• 技术文章 >数据库 >mysql教程

    Ubuntu Server下MySql数据库备份脚本代码

    2016-05-31 08:47:07原创685
    UbuntuServerUbuntu

    明:

    我这里要把MySql数据库存放目录/var/lib/mysql下面的pw85数据库备份到/home/mysql_data里面,并且保存为mysqldata_bak_2012_04_11.tar.gz的压缩文件格式(2012_04_11是指备份执行时当天的日期), 最后只保留最近7天的备份。

    实现步骤:

    1、创建保存备份文件的目录:/home/mysql_data

    cd /home #进入目录

    mkdir mysql_data #创建目录

    2、创建备份脚本文件:/home/mysql_data/mysql_databak.sh

    cd /home/mysql_data #进入目录

    touch mysql_databak.sh #创建文件

    nano mysql_databak.sh #编辑文件,输入以下内容

    复制代码代码如下:

    #!/bin/sh

    DUMP=/usr/bin/mysqldump #mysqldump备份程序执行路径

    OUT_DIR=/home/mysql_data #备份文件存放路径

    LINUX_USER=root #系统用户名

    DB_NAME=pw85 #要备份的数据库名字

    DB_USER=root #数据库账号 注意:非root用户要用备份参数 --skip-lock-tables,否则可能会报错

    DB_PASS=123456 #数据库密码

    DAYS=7 #DAYS=7代表删除7天前的备份,即只保留最近7天的备份

    cd $OUT_DIR #进入备份存放目录

    DATE=`date +%Y_%m_%d` #获取当前系统时间

    OUT_SQL="$DATE.sql" #备份数据库的文件名

    TAR_SQL="mysqldata_bak_$DATE.tar.gz" #最终保存的数据库备份文件名

    $DUMP -u$DB_USER -p$DB_PASS $DB_NAME --default-character-set=utf8 --opt -Q -R --skip-lock-tables> $OUT_SQL #备份

    tar -czf $TAR_SQL ./$OUT_SQL #压缩为.tar.gz格式

    rm $OUT_SQL #删除.sql格式的备份文件

    chown $LINUX_USER:$LINUX_USER $OUT_DIR/$TAR_SQL #更改备份数据库文件的所有者

    find $OUT_DIR -name "mysqldata_bak*" -type f -mtime +$DAYS -exec rm {} /; #删除7天前的备份文件

    (注意:{} /;中间有空格)

    #######################################################################################################

    ctrl+o #保存配置

    ctrl+x #退出

    3、修改文件属性,使其可执行

    chmod +x /home/mysql_data/mysql_databak.sh

    4、修改/etc/crontab

    nano /etc/crontab #编辑文件,在下面添加

    45 22 * * * root /home/mysql_data/mysql_databak.sh #表示每天22点45分执行备份

    ctrl+o #保存配置

    ctrl+x #退出

    5、重新启动crond使设置生效

    service cron stop #停止

    service cron start #启动

    /etc/init.d/cron restart #重启

    chkconfig cron on #设为开机启动

    每天你在/home/mysql_data目录下面可以看到类似mysqldata_bak_2012_04_11.tar.gz这样的压缩文件

    如果需要恢复文件的时候,只需要把这个文件解压:tar -zxvf mysqldata_bak_2012_04_11.tar.gz

    然后导入到数据库中即可。

    至此,Ubuntu Server下MySql数据库备份脚本完成。

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:
    上一篇:mysql异常--Incorrect datetime value: '2014-04-14_MySQL 下一篇:Mac 上装 Python的SQLdb_MySQL
    PHP编程就业班

    相关文章推荐

    • mysql字段怎么判断是否存在• mysql怎么查看数据库保存在哪• mysql查询怎么区分大小写• 一起聊聊Mysql索引底层及优化• mysql存储过程怎样变量赋值

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网