mysql 完全恢复_MySQL完全备份与恢复

MySQL完全备份与恢复

完全备份:对整个数据库的备份、数据库结构和文件结构的备份,保存的是备完成时刻的数据库,是增量备份的基础。

mysql数据库的备份可以采用两种方式,因为数据库实际上就是文件,直接打包数据库文件夹,或者是使用专用备份工具mysqldump都可以进行备份工作。

MySQL完全备份

1.使用tar打包文件夹备份

MySQL的数据库文件默认都是保存在安装目录的data文件夹下面,可以直接保存data文件夹,但是占用的空间较大,可以使用tar打包压缩进行保存。

(1)数据库文件很大,可以使用压缩率较大的xz格式压缩,默认情况下已有,如果没有需安装xz压缩格式工具。

[root@localhost mysql]# yum install xz -y

(2)对数据库文件夹/usr/local/mysql/data/进行打包操作。

[root@localhost mysql]# tar Jcvf /opt/mysql-$(date +%F).tar.xz /usr/local/mysql/data/

[root@localhost ~]# cd /opt/

[root@localhost opt]# ls

mysql-2018-07-02.tar.xz rh //备份文件//

(3)如果数据库文件损坏数据丢失,可以解压缩备份文件,相当于做了数据恢复的工作。

[root@localhost opt]# tar Jxvf /opt/mysql-2018-07-02.tar.xz /usr/local/mysql/data/

2使用mysqldump工具备份

前面介绍的对MySQL整个数据库目录压缩的方式,是备份数据库中所有的内容。使用mysqldup可以更加灵活地控制备份的内容,比如某几个表或库都可以单独备份。

(1)使用mysqldump命令对库school中的表info进行备份,备份的文件是/opt/info.sql

[root@localhost opt]# mysqldump -u root -p school info > /opt/info.sql

[root@localhost opt]# ls

info.sql mysql-2018-07-02.tar.xz

(2)使用mysqldump命令对单个库进行完全备份,备份文件是/opt/school.sql。

[root@localhost opt]# mysqldump -u root -p school > /opt/school.sql

Enter password: //root登录密码//

[root@localhost opt]# ls

info.sql mysql-2018-07-02.tar.xz rh school.sql

(3)使用mysqldump命令对多个库进行备份,备份文件是/opt/school-mysql.sql。

[root@localhost opt]# mysqldump -u root -p --databases school mysql > /opt/school-mysql.sql

[root@localhost opt]# ls

info.sql mysql-2018-07-02.tar.xz rh school-mysql.sql school.sql

(4)使用mysqldump命令对所有库进行完全备份,备份文件是all.sql。

[root@localhost opt]# mysqldump -u root -p --all-databases > /opt/all.sql

[root@localhost opt]# ls

all.sql info.sql mysql-2018-07-02.tar.xz rh school-mysql.sql school.sql

(5)使用mysqldump命令也可以直接备份表结构,备份文件是/opt/desc-info.sql。

[root@localhost opt]# mysqldump -u roou -p school info > /opt/desc-info.sql

[root@localhost opt]# ls

all.sql desc-info.sql info.sql mysql-2018-07-02.tar.xz rh school-mysql.sql school.sql

MySQL完全恢复

1.恢复整库操作

(1)首先对库school进行备份

[root@localhost opt]# mysqldump -u root -p school > /opt/school.sql

(2)假设数据损坏,删除数据库school。

[root@localhost opt]# mysql -u root -p //登录mysql//

Enter password: //登录密码//

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 17

Server version: 5.7.17 Source distribution

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases; //查看所有库//

+--------------------+

| Database |

+--------------------+

| information_schema |

| mysql |

| performance_schema |

| school |

| sys |

+--------------------+

5 rows in set (0.00 sec)

mysql> drop database school; //删除school库//

Query OK, 0 rows affected (0.00 sec)

mysql> show databases;

+--------------------+

| Database |

+--------------------+

| information_schema |

| mysql |

| performance_schema |

| sys |

+--------------------+

4 rows in set (0.00 sec)

(3)不登录mysql,使用mysql命令恢复库school。

此时库school已经被删除了,需要先创建再进行恢复操作,否则会报错。

[root@localhost opt]# mysql -u root -p

mysql> create database school; //创建库//

Query OK, 1 row affected (0.00 sec)

mysql> quit //退出//

Bye

[root@localhost opt]# mysql -u root -p school < /opt/school.sql //恢复school库//

[root@localhost opt]# mysql -u root -p //登录mysql数据库//

mysql> show databases;

+--------------------+

| Database |

+--------------------+

| information_schema |

| mysql |

| performance_schema |

| school |

| sys |

+--------------------+

5 rows in set (0.00 sec)

2.使用source命令恢复表

(1)首先对表info进行备份

[root@localhost opt]# mysqldump -u root -p school info > /opt/info.sql

(2)假设数据损坏,删除数据库school中的表info。

mysql> use school; //进入school库//

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; //查看表//

+------------------+

| Tables_in_school |

+------------------+

| info |

+------------------+

1 row in set (0.00 sec)

mysql> select * from info; //查看数据记录//

+----------+-------+

| name | score |

+----------+-------+

| zhangsan | 88.00 |

| lisi | 70.00 |

+----------+-------+

2 rows in set (0.00 sec)

mysql> drop table info; //删除info表//

Query OK, 0 rows affected (0.02 sec)

mysql> show tables;

Empty set (0.00 sec) //无表//

(3)登录mysql,使用source命令恢复表。

[root@localhost opt]# mysql -u root -p

mysql> use school; //进入库//

mysql> source /opt/info.sql //恢复info表//

Query OK, 0 rows affected (0.00 sec)

mysql> show tables;

+------------------+

| Tables_in_school |

+------------------+

| info |

+------------------+

1 row in set (0.00 sec)

mysql> select * from info;

+----------+-------+

| name | score |

+----------+-------+

| zhangsan | 88.00 |

| lisi | 70.00 |

+----------+-------+

2 rows in set (0.00 sec)

(4)也可以使用mysql进行恢复

[root@localhost opt]mysqldump -u root -p school info > /opt/school-info.sql //备份//

[root@localhost opt]mysql -u root -p school < /opt/school-info.sql //恢复//

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值