MySQL教程 MySQL教程MySQL 连接MySQL 查看数据库MySQL 创建数据库MySQL 修改数据库MySQL 删除数据库MySQL 选择数据库MySQL 数据类型MySQL存储引擎MySQL 数据表的增删改查MySQL 表数据增删改查操作MySQL 条件子句MySQL 清空表记录MySQL 模糊查询MySQL 处理重复数据MySQL 别名MySQL 限制查询结果数量Mysql 查询结果排序MySQL 范围查询MySQL 空值查询MySQL 查询结果合拼MySQL 分组MySQL 筛选分组MySQL 表连接MySQL NULL值处理MySQL 子查询MySQL 正则表达式MySQL 视图MySQL 索引MySQL 事务MySQL 数据库备份(导出)/还原(导入)MySQL安装 MySQL Windows版下载教程MySQL windows系统安装教程MySQL windows系统简单的安装教程MySQL Linux系统安装教程MySQL Linux系统下载教程MySQL Linux系统简单的安装教程配置MySQL环境变量

MySQL 数据库备份(导出)/还原(导入)

数据库为什么需要备份?备份就是为了防止原数据丢失,保证数据的安全。当数据库因为某些原因造成部分或者全部数据丢失后,备份文件可以帮我们找回丢失的数据。因此,数据备份是很重要的工作。

常见数据库备份的应用场景如下:

mysql数据恢复/导入

获取mysql数据导入文件内容

这是database.sql详细得内容。

-- MySQL dump 10.13  Distrib 5.7.26, for Win64 (x86_64)
--
-- Host: localhost    Database: test2
-- ------------------------------------------------------
-- 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 `b`
--

DROP TABLE IF EXISTS `b`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `b` (
  `id` int(11) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `b`
--

LOCK TABLES `b` WRITE;
/*!40000 ALTER TABLE `b` DISABLE KEYS */;
INSERT INTO `b` VALUES (3),(4);
/*!40000 ALTER TABLE `b` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `orders`
--

DROP TABLE IF EXISTS `orders`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `orders` (
  `order_id` int(11) NOT NULL,
  `customer_id` int(11) DEFAULT NULL,
  `order_date` date DEFAULT NULL,
  `total_amount` decimal(10,2) DEFAULT NULL,
  PRIMARY KEY (`order_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `orders`
--

LOCK TABLES `orders` WRITE;
/*!40000 ALTER TABLE `orders` DISABLE KEYS */;
INSERT INTO `orders` VALUES (1,1001,'2023-01-01',100.00),(2,1002,'2023-01-02',200.00),(3,1003,'2023-01-03',300.00),(4,1004,'2023-01-04',400.00),(5,1005,'2023-01-05',500.00);
/*!40000 ALTER TABLE `orders` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `students`
--

DROP TABLE IF EXISTS `students`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `students` (
  `id` int(11) NOT NULL,
  `name` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
  `age` int(11) DEFAULT NULL,
  `grade` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `students`
--

LOCK TABLES `students` WRITE;
/*!40000 ALTER TABLE `students` DISABLE KEYS */;
INSERT INTO `students` VALUES (1,'Alice',20,93),(2,'Bob',19,82),(3,'Charlie',21,40),(4,'David',18,81),(5,'Eve',22,55);
/*!40000 ALTER TABLE `students` 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 2024-05-25 19:26:25


注意要恢复数据库或者数据表时要先有数据库,没有的话则需要新建。mysql和mysqldump是在cmd窗口执行,而不是不进入mysql后执行的。不能加';'分号。

1.使用mysql命令恢复/导入

C:\Users\Administrator>mysql -u root -p123456 test2 < D:\database.sql

以上是以sql文件方式导入,'root'是数据库账号,'123456'是root账号密码,test2是需要恢复/导入数据库,列外恢复/导入数据库的数据表也是一样。只要sql文件写的是导入数据表的语句。

或以txt文件方式导入,前提是导出时选择的导出类型

C:\Users\Administrator>mysql -u root -p123456 test2 < D:\database.txt

2.使用Navica工具恢复和导入

在链接数据库账号后选择需要恢复/导入的数据库右键点击"运行sql文件"即可

微信图片_20240525193755.png

mysql数据备份/导出

1.使用mysqldump命令备份/导出

使用cmd命令执行一下命令

C:\Users\Administrator>mysqldump -u root -p123456  test2> D:\database.sql

'root'是数据库账号,'123456'是root账号密码

导出数据库表

mysqldump -u root -p123456  test2 b> D:\datatable.txt

'root'是数据库账号,'123456'是root账号密码。test2是数据库,b是test2数据库里面的数据表,导出一张表其他表不导出,同样是用mysql恢复/导入

2.使用Navica工具备份/导出

在链接数据库账号后选择需要备份/导出的数据库右键点击"转储sql文件"即可结构和数据,如果不需要数据则选则仅结构(就只要表结构信息)。

微信图片_20240525195133.png

或者使用工具自带的备份功能,如果使用该功能备注则需要使用该功能进行恢复

微信图片_20240525195538.png

本地和远程数据库进行相互复制

1.本地复制数据库到远程服务器数据库

需要确保远程服务器是能链接成功的

mysqldump -h localhost -uroot -p123456 test2 b| mysql -h 124.142.160.21 -u root -p123456 test2

'root'是数据库账号,'123456'是root账号密码。test2是数据库,'124.142.160.21'是远程服务器的ip地址

2.使用Navica复制本地数据库到远程服务器数据库

在链接数据库账号后选择需要复制的数据库右键点击"数据传输"即可

微信图片_20240525200354.png

然后选择已经建立链接的数据库

微信图片_20240525200641.png