数据库为什么需要备份?备份就是为了防止原数据丢失,保证数据的安全。当数据库因为某些原因造成部分或者全部数据丢失后,备份文件可以帮我们找回丢失的数据。因此,数据备份是很重要的工作。
常见数据库备份的应用场景如下:
人为操作失误造成某些数据被误操作
软件 BUG 造成部分数据或全部数据丢失
硬件故障造成数据库部分数据或全部数据丢失
安全漏洞被入侵数据恶意破坏
这是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后执行的。不能加';'分号。 |
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
在链接数据库账号后选择需要恢复/导入的数据库右键点击"运行sql文件"即可
使用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恢复/导入
在链接数据库账号后选择需要备份/导出的数据库右键点击"转储sql文件"即可结构和数据,如果不需要数据则选则仅结构(就只要表结构信息)。
或者使用工具自带的备份功能,如果使用该功能备注则需要使用该功能进行恢复
需要确保远程服务器是能链接成功的
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地址
在链接数据库账号后选择需要复制的数据库右键点击"数据传输"即可
然后选择已经建立链接的数据库