MySQL数据备份与恢复

MySQL数据备份与恢复

在数据库管理过程中,即使采用了一系列的措施保证数据库的安全,但是依然可能存在意外情况的发生造成数据的损失,因此定期的备份数据是数据库管理中一个必要的工作。

 

该文章介绍使用mysql提供的工具备份和恢复数据,对于当前大多数的可视化工具提供了很好的备份操作例如navicat、data grip等都有很好的支持。

  1. 数据备份

数据备份是MySQL管理中重要的内容之一。系统崩溃或者遭受攻击等都可能导致数据库中数据的丢失,因此定期备份数据可以在以外情况发生的时候尽可能的减少损失。

1.1mysqldump命令备份

Mysqldump是MySQL提供的一个数据库备份工具,执行mysqldump命令的时候会将数据库备份为一个sql文件,使用create和insert语句备份数据。

 

备份一个库语法:mysqldump -u user -p password dbname tbname1 tbname2 > c:filename.sql

如果没有密码可以留空,省略tbname就默认备份整个dbname的所有表

 

备份多个库语法:mysqldump -u root -h localhost -p --databases dbname1 dbname2 > c:filename.sql

 

备份所有数据库语法:mysqldump -u root -p --all-databases > c:filename.sql

 

备份mydb库中的test1表:mysqldump -u root -p mydb test1 > C:\Users\lenovo\Desktop\back20190804.sql

备份文件如下:

-- MySQL dump 10.13  Distrib 5.7.26, for Win64 (x86_64)

--

-- Host: localhost    Database: mydb

-- ------------------------------------------------------

-- Server version 5.7.26

 

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;

/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;

/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;

/*!40101 SET NAMES utf8 */;

/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;

/*!40103 SET TIME_ZONE='+00:00' */;

/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;

/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;

/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;

/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

 

--

-- Table structure for table `test1`

--

 

DROP TABLE IF EXISTS `test1`;

/*!40101 SET @saved_cs_client     = @@character_set_client */;

/*!40101 SET character_set_client = utf8 */;

CREATE TABLE `test1` (

  `name` varchar(10) DEFAULT NULL,

  `age` tinyint(4) DEFAULT '0'

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

/*!40101 SET character_set_client = @saved_cs_client */;

 

--

-- Dumping data for table `test1`

--

 

LOCK TABLES `test1` WRITE;

/*!40000 ALTER TABLE `test1` DISABLE KEYS */;

INSERT INTO `test1` VALUES ('jack',18);

/*!40000 ALTER TABLE `test1` ENABLE KEYS */;

UNLOCK TABLES;

/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

 

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;

/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;

/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;

/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;

/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

 

-- Dump completed on 2019-08-04 21:53:42

 

 

 

 

2.数据恢复

2.1mysqldump备份恢复

对于使用mysqldump命令备份的文件恢复只需要反向操作即可。语法:mysql -u user -p dbname < c:filename.sql user是备份时候使用的用户名,数据恢复的时候不需要指定数据库名。

 

恢复刚才备份的mydb.test1数据库表的数据:

方式一:不用登录服务器

mysql -u root -p mydb < C:\Users\lenovo\Desktop\back20190804.sql 在执行语句前需要确保数据库是存在的。

方式二:登录服务器,使用use选择数据库

Source filename 该方式会执行sql文件的每一个语句

source C:\Users\lenovo\Desktop\back20190804.sql

 

展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: Age of Ai 设计师: meimeiellie
应支付0元
点击重新获取
扫码支付

支付成功即可阅读