zoukankan      html  css  js  c++  java
  • mysqldump定时备份数据库

    mysql服务器ip:192.168.0.10

    备份服务器ip:192.168.0.11

    数据库名称:db_product

    思路:在mysql服务器A上创建一个用户分配权限专门用于数据库备份,A服务器可以是数据库集群中的slave之一。找一个磁盘宽裕的服务器B,安装mysql的客户端。

    在服务器B上执行mysqldump命令备份数据库。

    只安装mysql客户端的教程:https://www.cnblogs.com/xxoome/p/8313453.html

    #创建用户,用户名为【backupuser】并限制客户端连接ip,【192.168.0.11】为B服务器的ip
    CREATE USER 'backupuser'@'192.168.0.11' IDENTIFIED BY 'pwd';
    
    #授予用户权限,限制了可以访问的数据库
    GRANT ALL ON db_product.* TO 'backupuser'@'192.168.0.11';
    flush privileges;

    编写脚本

    #创建脚本
    touch mysql_backup.sh
    
    #增加可执行权限
    chmod +x mysql_backup.sh

    脚本内容

    #!/bin/sh
    # File: /usr/local/xiaohb/mysql_backup.sh
    # Database info
    DB_NAME="db_product"
    DB_USER="backupuser"
    DB_PASS="pwd"
    DB_HOST="192.168.0.10"
    DB_PORT="3306"
    
    BIN_DIR="/usr/bin"
    BCK_DIR="/usr/local/xiaohb/mysql_backup"
    DATE=`date +%Y%m%d_%H%M%S`
    
    mkdir -p $BCK_DIR
    #$BIN_DIR/mysqldump --opt -u$DB_USER -p$DB_PASS $DB_NAME > $BCK_DIR/$DB_NAME.dump_$DATE.sql
    
    # 为了减小磁盘空间的消耗,这里使用gzip压缩
    $BIN_DIR/mysqldump --opt -h$DB_HOST -P$DB_PORT -u$DB_USER -p$DB_PASS $DB_NAME | gzip > $BCK_DIR/$DB_NAME.dump_$DATE.sql.gz

    创建定时任务

    #编辑定时任务
    crontab -e
    
    #若crontab没有安装
    yum install -y vixie-cron
    
    #每天凌晨1点执行
    0 1 * * * /usr/local/xiaohb/mysql_backup.sh
    
    #重载crontab
    service crond reload
  • 相关阅读:
    尘埃里的路人甲
    尘埃里的路人辛
    尘埃里的路人庚
    尘埃里的路人己
    尘埃里的路人戊
    尘埃里的路人丁
    C语言II博客作业04
    C语言II博客作业03
    C语言II博客作业02
    C语言II博客作业01
  • 原文地址:https://www.cnblogs.com/xxoome/p/10027945.html
Copyright © 2011-2022 走看看