zoukankan      html  css  js  c++  java
  • mysql学习之旅-数据库自动备份和手动恢复


    1、导入测试数据库数据

    建库
    show databases;
    CREATE DATBASE easthome;
    建表
     CREATE TABLE tj(name varchar(8),tel int(8));
    CREATE TABLE sex(name varchar(8),sex int(1));
    插入信息
    INSERT INTO easthome.tj(name,tel) VALUES('LIYAN',88888888);
    INSERT INTO easthome.tj(name,tel) VALUES('zy',77777777);
    insert into easthome.sex(name,sex) values('zy',1);
    mysql> insert into easthome.sex(name,sex) values('LIYAN',0);
    Query OK, 1 row affected (0.00 sec)
    insert into easthome.sex(name,sex) values('yangchen',1);
     insert into sex(name,sex) values('zhangyun',0);
    mysql> show tables;
    +--------------------+
    | Tables_in_easthome |
    +--------------------+
    | sex                |
    | tj                 |
    +--------------------+
    2 rows in set (0.00 sec)

    mysql> select * from sex;
    +----------+------+
    | name     | sex  |
    +----------+------+
    | zy       |    1 |
    | LIYAN    |    0 |
    | yangchen |    1 |
    | zhangyun |    0 |
    +----------+------+
    4 rows in set (0.00 sec)

    mysql> SELECT * FROM easthome.tj;
    +-------+----------+
    | name  | tel      |
    +-------+----------+
    | LIYAN | 88888888 |
    | zy    | 77777777 |
    +-------+----------+
    2 rows in set (0.00 sec)


    2、开始备份
    mysqldump备份成dump文件
    ==============
    MySQL   安装位置:D:appmysql57
    数据库名称为:easthome
    MySQL root   密码:redhat
    数据库备份目的地:D:db_backup

    脚本:

    rem *******************************Code Start*****************************
    @echo off
    set "Ymd=%date:~,4%%date:~5,2%%date:~8,2%"
    D:appmysql57inmysqldump.exe  -uroot -predhat --default-character-set=binary -f easthome > D:db_bakupeasthome_%Ymd%.dump
    @echo on
    rem *******************************Code End*****************************

    将以上代码保存为backup_db.bat   调试时可以在结尾加上pause,查看是否正常执行
    然后使用Windows的“计划任务”定时执行该脚本即可。(例如:每天凌晨5点执行back_db.bat)
    说明:此方法可以不用关闭数据库,并且可以按每一天的时间来名称备份文件。
    通过%date:~5,2%来组合得出当前日期,组合的效果为yyyymmdd,date命令得到的日期格式默认为yyyy-mm-dd(如果不是此格式可以通过pause命令来暂停命令行窗口看通过%date:~,20%得到的当前计算机日期格式),所以通过%date:~5,2%即可得到日期中的第五个字符开始的两个字符,例如今天为2009-02-05,通过%date:~5,2%则可以得到02。(日期的字符串的下标是从0开始的)

    3、导入到冷备库中     #在这里卡了半天,原来mysqldump只是导出工具,导入时必须要用mysql

    在cmd中登录mysql
    mysql -uroot -p
    create database mytest
    use mytest
    source d:db_bakupeasthome_20160901.dump
    show tables;    #检查是否导入成功

    效果如下:
    mysql> source D:db_bakupeasthome_20160901.dump
    Query OK, 0 rows affected (0.00 sec)

    Query OK, 0 rows affected (0.00 sec)

    Query OK, 0 rows affected (0.00 sec)

    Query OK, 0 rows affected (0.00 sec)

    Query OK, 0 rows affected (0.00 sec)

    Query OK, 0 rows affected (0.00 sec)

    Query OK, 0 rows affected (0.00 sec)

    Query OK, 0 rows affected (0.00 sec)

    Query OK, 0 rows affected (0.00 sec)

    Query OK, 0 rows affected (0.00 sec)

    Query OK, 0 rows affected (0.00 sec)

    Query OK, 0 rows affected, 1 warning (0.00 sec)

    Query OK, 0 rows affected (0.00 sec)

    Query OK, 0 rows affected (0.00 sec)

    Query OK, 0 rows affected (0.00 sec)

    Query OK, 0 rows affected (0.00 sec)

    Query OK, 0 rows affected (0.00 sec)

    Query OK, 0 rows affected (0.00 sec)

    mysql> show tables;
    +------------------+
    | Tables_in_mytest |
    +------------------+
    | sex              |
    | tj               |
    +------------------+
    2 rows in set (0.00 sec)

    mysql> show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | mysql              |
    | mytest             |
    | performance_schema |
    | sys                |
    +--------------------+
    5 rows in set (0.00 sec)

  • 相关阅读:
    ecos之widget
    一个php小白找工作的历程
    php知识点总结(待续)
    2
    php笔试题1
    兄弟连面试宝典php
    第二十一章 消费者选择理论
    第二十章 收入不平等与贫困
    第十九章 收入与歧视
    第十八章 生产要素市场
  • 原文地址:https://www.cnblogs.com/mathprice/p/5831518.html
Copyright © 2011-2022 走看看