zoukankan      html  css  js  c++  java
  • MySQL数据库的自动备份与数据库被破坏后的恢复(2)

    测试自动备份正常运转与否(备份恢复的方法)

    这里,以通过实际操作的过程来介绍问题出现后的恢复方法。

    [1] 当数据库被删除后的恢复方法

    首先建立一个测试用的数据库。

    [root@CentOS ~]# mysql -u root -p   ← 用root登录到MySQL服务器 
    Enter password:  ← 输入MySQL的root用户密码 
    Welcome to the MySQL monitor. Commands end with ; or g. 
    Your MySQL connection id is 8 to server version: 4.1.20 

    Type 'help;' or 'h' for help. Type 'c' to clear the buffer. 

    mysql> create database test;  ← 建立一个测试用的数据库test 
    Query OK, 1 row affected (0.00 sec) 

    mysql> use test  ← 连接到这个数据库 
    Database changed 

    mysql> create table test(num int, name varchar(50));  ← 在数据库中建立一个表 
    Query OK, 0 rows affected (0.07 sec) 

    mysql> insert into test values(1,'Hello,CentOS');  ← 插入一个值到这个表(这里以“Hello,CentOS”为例) 
    Query OK, 1 row affected (0.02 sec) 

    mysql> select * from test;  ← 查看数据库中的内容 
    +------+-----------------+ 
    | num | name | 
    +------+-----------------+ 
    |1  | Hello,Centos |  ← 确认刚刚插入到表中的值的存在 
    +------+------------------+ 
    1 row in set (0.01 sec) 

    mysql> exit  ← 退出MySQL服务器 
    Bye

    然后,运行刚才建立的数据库备份脚本,备份刚刚建立的测试用的数据库。

    [root@sample ~]# cd ← 回到脚本所在的root用户的根目录 
    [root@sample ~]# ./mysql-backup.sh  ← 运行脚本进行数据库备份

    接下来,我们再次登录到MySQL服务器中,删除刚刚建立的测试用的数据库test,以便于测试数据恢复能否成功。

    [root@Centos ~]# mysql -u root -p  ← 用root登录到MySQL服务器 
    Enter password:  ← 输入MySQL的root用户密码 
    Welcome to the MySQL monitor. Commands end with ; or g. 
    Your MySQL connection id is 13 to server version: 4.1.20 

    Type 'help;' or 'h' for help. Type 'c' to clear the buffer. 

    mysql> use test  ← 连接到测试用的test数据库 
    Reading table information for completion of table and column names 
    You can turn off this feature to get a quicker startup with -A 

    Database changed 
    mysql> drop table test;  ← 删除数据中的表 
    Query OK, 0 rows affected (0.04 sec) 

    mysql> drop database test;  ← 删除测试用数据库test 
    Query OK, 0 rows affected (0.01 sec) 

    mysql> show databases; 
    +---------------+ 
    | Database | 
    +---------------+ 
    | mysql |  ← 确认测试用的test数据库已不存在、已被删除 
    +---------------+ 
    1 row in set (0.01 sec) 

    mysql> exit  ← 退出MySQL服务器 
    Bye

    以上,我们就等于模拟了数据库被破坏的过程。接下来,是数据库被“破坏”后,用备份进行恢复的方法。

    [root@Centos ~]# /bin/cp -Rf /backup/mysql/test/ /var/lib/mysql/  ← 复制备份的数据库test到相应目录 
    [root@Centos ~]# chown -R mysql:mysql /var/lib/mysql/test/  ← 改变数据库test的归属为mysql 
    [root@Centos ~]# chmod 700 /var/lib/mysql/test/  ← 改变数据库目录属性为700 
    [root@Centos ~]# chmod 660 /var/lib/mysql/test/*  ← 改变数据库中数据的属性为660

    然后,再次登录到MySQL服务器上,看是否已经成功恢复了数据库。

    [root@CentOS ~]# mysql -u root -p  ← 用root登录到MySQL服务器 
    Enter password:  ← 输入MySQL的root用户密码 
    Welcome to the MySQL monitor. Commands end with ; or g. 
    Your MySQL connection id is 14 to server version: 4.1.20 

    Type 'help;' or 'h' for help. Type 'c' to clear the buffer. 

    mysql> show databases;  ← 查看当前存在的数据库 
    +-------------+ 
    | Database | 
    +-------------+ 
    | mysql | 
    | test  |  ← 确认刚刚被删除的test数据库已经成功被恢复回来! 
    +------------+ 
    2 rows in set (0.00 sec) 

    mysql> use test  ← 连接到test数据库 
    Reading table information for completion of table and column names 
    You can turn off this feature to get a quicker startup with -A 

    Database changed 
    mysql> show tables;  ← 查看test数据库中存在的表 
    +-------------------+ 
    | Tables_in_test | 
    +-------------------+ 
    | test  | 
    +-------------------+ 
    1 row in set (0.00 sec) 

    mysql> select * from test;  ← 查看数据库中的内容 
    +------+---------------------+ 
    | num | name  | 
    +------+---------------------+ 
    | 1 | Hello,CentOS |  ← 确认数据表中的内容与删除前定义的“Hello,CentOS”一样! 
    +------+---------------------+ 
    1 row in set (0.01 sec) 

    mysql> exit  ← 退出MySQL服务器 
    Bye

    以上结果表示,数据库被删除后,用备份后的数据库成功的将数据恢复到了删除前的状态。

  • 相关阅读:
    [ArcGIS API for JavaScript 4.8] Sample Code-Get Started-MapView,SceneView简介
    [C语言]易错知识点、小知识点复习(1)
    OpenID Connect Core 1.0(二)ID Token
    轻量ORM-SqlRepoEx 重大升级
    OpenID Connect Core 1.0(一)介绍
    轻量ORM-SqlRepoEx (五) 存储过程操作
    轻量ORM-SqlRepoEx (四)INSERT、UPDATE、DELETE 语句
    轻量ORM-SqlRepoEx (三)Select语句
    轻量ORM-SqlRepoEx (二)初始化SqlRepoEx
    轻量ORM-SqlRepoEx (一)SqlRepoEx介绍
  • 原文地址:https://www.cnblogs.com/L-H-R-X-hehe/p/3830702.html
Copyright © 2011-2022 走看看