不同MySQL服务的表以及库的数据迁移(/备份)
目标:
将本地主机上username=root,password=root,port=3307的MySQL服务中migration_one数据库的table_11数据表导出到本地的D:\start_java\XinQiUtilsOrDemo\testMigrationMySQL\table_11.bak注意:目前D:\start_java\XinQiUtilsOrDemo\testMigrationMySQL该文件夹未存在table_11.bak这个文件。
先看看数据表有什么数据:
SELECT * FROM migration_one.`table_11`;
结果:
id name
------ --------
12321 hehe
看来就只有一行
一、导出数据:
1、导出备份数据之.bak文件:
用我的mysql8的mysqldump工具,但是目前是需要去找到我的mysql8在哪里:
SHOW VARIABLES LIKE "character_sets_dir";
得到结果:
Variable_name Value
------------------ ------------------------------------------------------------
character_sets_dir D:\start_java\lwsmysql\mysql-8.0.17-winx64\share\charsets\
于是来到D:\start_java\lwsmysql\mysql-8.0.17-winx64\bin文件夹可以看到一个mysqldump.exe在里面
于是就可以执行命令来备份文件了,不过需要将原来的table_11.bak删掉。
管理员打开终端执行:
D:\start_java\lwsmysql\mysql-8.0.17-winx64\bin\mysqldump.exe -h127.0.0.1 -P3307 -uroot -proot migration_one table_11 > D:\start_java\XinQiUtilsOrDemo\testMigrationMySQL\table_11.bak
得到执行结果:
D:\start_java\XinQiUtilsOrDemo\testMigrationMySQL>D:\start_java\lwsmysql\mysql-8.0.17-winx64\bin\mysqldump.exe -h127.0.0.1 -P3307 -uroot -proot migration_one table_11 > D:\start_java\XinQiUtilsOrDemo\testMigrationMySQL\table_11.bak
mysqldump: [Warning] Using a password on the command line interface can be insecure.
再打开table_11.bak文件:
-- MySQL dump 10.13 Distrib 8.0.17, for Win64 (x86_64)
--
-- Host: 127.0.0.1 Database: migration_one
-- ------------------------------------------------------
-- Server version 8.0.17/*!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 */;
/*!50503 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 `table_11`
--DROP TABLE IF EXISTS `table_11`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `table_11` (`id` varchar(200) NOT NULL,`name` varchar(10) DEFAULT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;--
-- Dumping data for table `table_11`
--LOCK TABLES `table_11` WRITE;
/*!40000 ALTER TABLE `table_11` DISABLE KEYS */;
INSERT INTO `table_11` VALUES ('12321','hehe');
/*!40000 ALTER TABLE `table_11` 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 2023-11-04 14:53:46
成功乐!这样才算正常的备份文件嘛。
2、导出数据和表结构——将特定数据库特定表中的数据和表格结构和数据全部返回
D:\start_java\lwsmysql\mysql-8.0.17-winx64\bin\mysqldump.exe -u root -h 127.0.0.1 -proot -P3307 migration_one table_11 > table_11_t_d.sql
管理员打开cmd进入D:\start_java\XinQiUtilsOrDemo\testMigrationMySQL文件夹里面执行上面的命令
执行结果:
D:\start_java\XinQiUtilsOrDemo\testMigrationMySQL>D:\start_java\lwsmysql\mysql-8.0.17-winx64\bin\mysqldump.exe -u root -h 127.0.0.1 -proot -P3307 migration_one table_11 > table_11_t_d.sql
mysqldump: [Warning] Using a password on the command line interface can be insecure.
发现D:\start_java\XinQiUtilsOrDemo\testMigrationMySQL文件夹多了一个table_11_t_d.sql文件,里面是:
-- MySQL dump 10.13 Distrib 8.0.17, for Win64 (x86_64)
--
-- Host: 127.0.0.1 Database: migration_one
-- ------------------------------------------------------
-- Server version 8.0.17/*!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 */;
/*!50503 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 `table_11`
--DROP TABLE IF EXISTS `table_11`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `table_11` (`id` varchar(200) NOT NULL,`name` varchar(10) DEFAULT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;--
-- Dumping data for table `table_11`
--LOCK TABLES `table_11` WRITE;
/*!40000 ALTER TABLE `table_11` DISABLE KEYS */;
INSERT INTO `table_11` VALUES ('12321','hehe');
/*!40000 ALTER TABLE `table_11` 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 2023-11-04 14:44:55
成功了
3、导出表结构却不导出表数据——只返回特定数据库特定表格的表格结构,不返回数据,添加“-d”命令参数
D:\start_java\lwsmysql\mysql-8.0.17-winx64\bin\mysqldump.exe -u root -h 127.0.0.1 -proot -P3307 -d migration_one table_11 > D:\start_java\XinQiUtilsOrDemo\testMigrationMySQL\table_11_t.sql
执行结果:
D:\start_java\XinQiUtilsOrDemo\testMigrationMySQL>D:\start_java\lwsmysql\mysql-8.0.17-winx64\bin\mysqldump.exe -u root -h 127.0.0.1 -proot -P3307 -d migration_one table_11 > D:\start_java\XinQiUtilsOrDemo\testMigrationMySQL\table_11_t.sql
mysqldump: [Warning] Using a password on the command line interface can be insecure.
查看table_11_t.sql:
-- MySQL dump 10.13 Distrib 8.0.17, for Win64 (x86_64)
--
-- Host: 127.0.0.1 Database: migration_one
-- ------------------------------------------------------
-- Server version 8.0.17/*!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 */;
/*!50503 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 `table_11`
--DROP TABLE IF EXISTS `table_11`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `table_11` (`id` varchar(200) NOT NULL,`name` varchar(10) DEFAULT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;
/*!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 2023-11-04 15:04:43
3、导出数据却不导出表结构——只返回特定数据库中特定表格的数据,不返回表格结构,添加“-t”命令参数
D:\start_java\lwsmysql\mysql-8.0.17-winx64\bin\mysqldump.exe -u root -h 127.0.0.1 -proot -P3307 -t migration_one table_11 > D:\start_java\XinQiUtilsOrDemo\testMigrationMySQL\table_11_d.sql
执行结果:
D:\start_java\XinQiUtilsOrDemo\testMigrationMySQL>D:\start_java\lwsmysql\mysql-8.0.17-winx64\bin\mysqldump.exe -u root -h 127.0.0.1 -proot -P3307 -t migration_one table_11 > D:\start_java\XinQiUtilsOrDemo\testMigrationMySQL\table_11_d.sql
mysqldump: [Warning] Using a password on the command line interface can be insecure.
查看table_11_d.sql
-- MySQL dump 10.13 Distrib 8.0.17, for Win64 (x86_64)---- Host: 127.0.0.1 Database: migration_one-- -------------------------------------------------------- Server version 8.0.17/*!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 */;/*!50503 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 */;---- Dumping data for table `table_11`--LOCK TABLES `table_11` WRITE;/*!40000 ALTER TABLE `table_11` DISABLE KEYS */;INSERT INTO `table_11` VALUES ('12321','hehe');/*!40000 ALTER TABLE `table_11` 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 2023-11-04 15:12:00
确实是只插入数据。
4、导出特定数据库的所有表格的表结构及其数据,添加“–databases ”命令参数
D:\start_java\lwsmysql\mysql-8.0.17-winx64\bin\mysqldump.exe -u root -h 127.0.0.1 -proot -P3307 --databases migration_one > D:\start_java\XinQiUtilsOrDemo\testMigrationMySQL\migration_one_database.sql
执行结果:
D:\start_java\XinQiUtilsOrDemo\testMigrationMySQL>D:\start_java\lwsmysql\mysql-8.0.17-winx64\bin\mysqldump.exe -u root -h 127.0.0.1 -proot -P3307 --databases migration_one > D:\start_java\XinQiUtilsOrDemo\testMigrationMySQL\migration_one_database.sql
mysqldump: [Warning] Using a password on the command line interface can be insecure.
查看migration_one_database.sql:
-- MySQL dump 10.13 Distrib 8.0.17, for Win64 (x86_64)
--
-- Host: 127.0.0.1 Database: migration_one
-- ------------------------------------------------------
-- Server version 8.0.17/*!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 */;
/*!50503 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 */;--
-- Current Database: `migration_one`
--CREATE DATABASE /*!32312 IF NOT EXISTS*/ `migration_one` /*!40100 DEFAULT CHARACTER SET utf8 */ /*!80016 DEFAULT ENCRYPTION='N' */;USE `migration_one`;--
-- Table structure for table `table_11`
--DROP TABLE IF EXISTS `table_11`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `table_11` (`id` varchar(200) NOT NULL,`name` varchar(10) DEFAULT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;--
-- Dumping data for table `table_11`
--LOCK TABLES `table_11` WRITE;
/*!40000 ALTER TABLE `table_11` DISABLE KEYS */;
INSERT INTO `table_11` VALUES ('12321','hehe');
/*!40000 ALTER TABLE `table_11` 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 2023-11-04 15:18:42
5、mysql导出具特定条件的表数据(--where="文本")
mysql根据条件导出表数据(--where=“文本“)-CSDN博客
二、导入(恢复)数据
导入(恢复)数据就用我在本地机MySQL5.7.19中名为demo这个库来实验吧。
上面导出(备份)数据是在mysql8进行的,但是本地不满意安装第二个MySQL8所以就用之前的MySQL5.7.19来做数据的导入。
先启动MySQL5.7.19:
D:\start_java\XinQiUtilsOrDemo\testMigrationMySQL>net start MYSQL
MySQL 服务正在启动 .
MySQL 服务已经启动成功。
输入登录命令,我的就用sqlyog连接工具来理解吧,账号密码也是要输入的:
SELECT VERSION();
结果:
version()
-----------
5.7.19
的确是5.7.19版本
1、恢复整个数据库
先查看当前是否存在库migration_one:
SELECT 1 FROM information_schema.schemata WHERE schema_name='migration_one';
不存在那就恢复,恢复前先找到mysql-5.7.19的mysql.exe:
SHOW VARIABLES LIKE "character_sets_dir";
得到结果:
Variable_name Value
------------------ ------------------------------------------------------------
character_sets_dir D:\start_java\lwsmysql\mysql-5.7.19-winx64\share\charsets\
于是mysql-5.7.19的mysql.exe在D:\start_java\lwsmysql\mysql-5.7.19-winx64\bin\mysql.exe
管理员打开终端输入:
D:\start_java\lwsmysql\mysql-5.7.19-winx64\bin\mysql.exe -u root -h 127.0.0.1 -pxinqi -P3306 < D:\start_java\XinQiUtilsOrDemo\testMigrationMySQL\migration_one_database.sql
执行结果:
D:\start_java\XinQiUtilsOrDemo\testMigrationMySQL>D:\start_java\lwsmysql\mysql-5.7.19-winx64\bin\mysql.exe -u root -h 127.0.0.1 -pxinqi -P3306 < D:\start_java\XinQiUtilsOrDemo\testMigrationMySQL\migration_one_database.sql
mysql: [Warning] Using a password on the command line interface can be insecure.
在数据库连接工具sqlyog执行查询可以验证确实是恢复成功了:
SELECT 1 FROM information_schema.schemata WHERE schema_name='migration_one';
得到:
-- 1个结果:1
--------1-- 3条信息:
返回了 1 行执行耗时 : 0 sec
传送时间 : 0 sec
总耗时 : 0 sec
SELECT * FROM migration_one.table_11;
-- 1个结果:id name
------ --------
12321 hehe -- 3条信息:
返回了 1 行执行耗时 : 0 sec
传送时间 : 0 sec
总耗时 : 0 sec
nice看来是在mysql-5.7.19恢复成功了。
2、恢复数据表结果及其数据:
这次我们要将D:\start_java\XinQiUtilsOrDemo\testMigrationMySQL\table_11_t_d.sql执行以在mysql-5.7.19的demo这个库中恢复migration_one.table_11这个表及其数据。
恢复前先看看demo是否存在table_11表:
SELECT * FROM information_schema.tables WHERE table_schema='demo';
结果:
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE ENGINE VERSION ROW_FORMAT TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE AUTO_INCREMENT CREATE_TIME UPDATE_TIME CHECK_TIME TABLE_COLLATION CHECKSUM CREATE_OPTIONS TABLE_COMMENT
------------- ------------ ----------------- ---------- ------ ------- ---------- ---------- -------------- ----------- --------------- ------------ --------- -------------- ------------------- ----------- ---------- --------------- -------- -------------- ---------------
def demo persistent_logins BASE TABLE InnoDB 10 Dynamic 0 0 16384 0 0 0 (NULL) 2022-11-17 10:28:14 (NULL) (NULL) utf8_general_ci (NULL)
def demo users BASE TABLE InnoDB 10 Dynamic 2 8192 16384 0 0 0 3 2022-11-15 19:12:49 (NULL) (NULL) utf8_general_ci (NULL)
发现table_11不存在,于是可以安心在demo这个数据库恢复table_11表了:
管理员打开终端执行
D:\start_java\lwsmysql\mysql-5.7.19-winx64\bin\mysql.exe -u root -h 127.0.0.1 -pxinqi -P3306 demo < D:\start_java\XinQiUtilsOrDemo\testMigrationMySQL\table_11_t_d.sql
执行成功:
D:\start_java\XinQiUtilsOrDemo\testMigrationMySQL>D:\start_java\lwsmysql\mysql-5.7.19-winx64\bin\mysql.exe -u root -h 127.0.0.1 -pxinqi -P3306 demo < D:\start_java\XinQiUtilsOrDemo\testMigrationMySQL\table_11_t_d.sql
mysql: [Warning] Using a password on the command line interface can be insecure.
验证table_11_t_d表及其数据是否已在demo恢复:
SELECT * FROM information_schema.tables WHERE table_schema='demo';
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE ENGINE VERSION ROW_FORMAT TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE AUTO_INCREMENT CREATE_TIME UPDATE_TIME CHECK_TIME TABLE_COLLATION CHECKSUM CREATE_OPTIONS TABLE_COMMENT
------------- ------------ ----------------- ---------- ------ ------- ---------- ---------- -------------- ----------- --------------- ------------ --------- -------------- ------------------- ------------------- ---------- --------------- -------- -------------- ---------------
def demo persistent_logins BASE TABLE InnoDB 10 Dynamic 0 0 16384 0 0 0 (NULL) 2022-11-17 10:28:14 (NULL) (NULL) utf8_general_ci (NULL)
def demo table_11 BASE TABLE InnoDB 10 Dynamic 0 0 16384 0 0 0 (NULL) 2023-11-04 16:24:28 2023-11-04 16:24:28 (NULL) utf8_general_ci (NULL)
def demo users BASE TABLE InnoDB 10 Dynamic 2 8192 16384 0 0 0 3 2022-11-15 19:12:49 (NULL) (NULL) utf8_general_ci (NULL)
再验证:
SELECT * FROM demo.table_11;
结果:
id name
------ --------
12321 hehe
数据恢复成功!
这里是恢复数据表结构及其数据,看一眼table_11_t_d.sql即可发现里面的逻辑就是【判断表是否存在,存在即删除该表->创建该表->加锁->插入所有数据->释放锁】
很好懂的,看sql见其应用场景。
3、仅仅恢复表数据
这里便是之前导出的table_11_d.sql的应用场景了,看里面的逻辑:【加锁->插入所有数据->释放锁】就知道首先得存在一张名为table_11的表。
先干掉demo.table_11的数据:
TRUNCATE demo.table_11;
SELECT * FROM demo.table_11;
接下来管理员打开终端执行:
D:\start_java\lwsmysql\mysql-5.7.19-winx64\bin\mysql.exe -u root -h 127.0.0.1 -pxinqi -P3306 demo < D:\start_java\XinQiUtilsOrDemo\testMigrationMySQL\table_11_d.sql
执行结果:
D:\start_java\XinQiUtilsOrDemo\testMigrationMySQL>D:\start_java\lwsmysql\mysql-5.7.19-winx64\bin\mysql.exe -u root -h 127.0.0.1 -pxinqi -P3306 demo < D:\start_java\XinQiUtilsOrDemo\testMigrationMySQL\table_11_d.sql
mysql: [Warning] Using a password on the command line interface can be insecure.
再用MySQL命令执行:
SELECT * FROM demo.table_11;
即可看到表数据恢复。
4、仅仅恢复表结构
这里便是之前导出的table_11_t.sql的应用场景了,看里面的逻辑:【判断表是否存在,存在即删除该表->创建该表】
就知道首先删除demo库里存在名为table_11的表:
DROP TABLE demo.table_11;
SELECT 1 FROM information_schema.tables WHERE table_schema='demo' AND table_name ='table_11';SELECT * FROM information_schema.tables WHERE table_schema='demo';
通过结果得知demo.table_11已祭天。
接下来管理员打开终端执行:
D:\start_java\lwsmysql\mysql-5.7.19-winx64\bin\mysql.exe -u root -h 127.0.0.1 -pxinqi -P3306 demo < D:\start_java\XinQiUtilsOrDemo\testMigrationMySQL\table_11_t.sql
执行结果:
D:\start_java\XinQiUtilsOrDemo\testMigrationMySQL>D:\start_java\lwsmysql\mysql-5.7.19-winx64\bin\mysql.exe -u root -h 127.0.0.1 -pxinqi -P3306 demo < D:\start_java\XinQiUtilsOrDemo\testMigrationMySQL\table_11_t.sql
mysql: [Warning] Using a password on the command line interface can be insecure.
通过以下语句得知验证恢复表结构成功:
SELECT 1 FROM information_schema.tables WHERE table_schema='demo' AND table_name ='table_11';SELECT * FROM information_schema.tables WHERE table_schema='demo';SELECT * FROM demo.table_11;
nice!
参考
MySql数据库备份与恢复——使用mysqldump 导入与导出方法总结_mysql备份-CSDN博客
MySQL数据库(表)的导入导出(备份和还原) mysql 根据一张表数据更新另一张表-腾讯云开发者社区-腾讯云 (tencent.com)
MySQL判断库、表、列是否存在 - 钟小嘿 - 博客园 (cnblogs.com)
其他可能有用或可以学习得参考:
mysql mysqldump 命令导出指定表的数据 - Ruthless - 博客园 (cnblogs.com)
相关文章:
不同MySQL服务的表以及库的数据迁移(/备份)
目标: 将本地主机上usernameroot,passwordroot,port3307的MySQL服务中migration_one数据库的table_11数据表导出到本地的D:\start_java\XinQiUtilsOrDemo\testMigrationMySQL\table_11.bak注意:目前D:\start_java\XinQiUtilsOrDemo\testMigrationMySQL该…...
聊聊芯片超净间的颗粒(particle)
在芯片制造领域,颗粒的存在可能对生产过程产生巨大影响。其中,每个微小的颗粒,无论是来自人员、设备,还是自然环境,都有可能在制程中引发故障,从而对产品性能产生负面影响。这就是为什么在芯片厂中…...
服务器(windows Server 2019为例)中的日志中文乱码的解决办法
1. 首先,打开控制面板,找到区域(Region),把Format设置为国语简体中文,点击高级(Administrative)后设置Current system locale为国语简体中文,按照图中步骤:...
Linux 学习(CentOS 7)
CentOS 7 学习 Linux系统内核作者: Linux内核版本 内核(kernel)是系统的心脏,是运行程序和管理像磁盘和打印机等硬件设备的核心程序,它提供了一个在裸设备与应用程序间的抽象层。 Linux内核版本又分为稳定版和开发版,两种版本是相互关联&am…...
架构决策记录 ADR
在项目和产品开发过程中,软件工程团队需要做出架构决策以实现其目标。这些决策可以是技术性的,也可以与流程相关。 技术决策:例如决定使用JBOSS Data Grid作为缓存解决方案还是选择Amazon Elasticache,或者决定使用AWS Network L…...
SSM之spring注解式缓存redis->redis整合,redis的注解式开发及应用场景,redis的击穿穿透雪崩
redis整合redis的注解式开发及应用场景redis的击穿穿透雪崩 1.redis整合 mysql整合 pom配置; String-fmybatis.xml --> mybatis.cfg.xml: 包扫描; 注册了一个jdbc.properties(url/password/username/...); 配置数据源(数据库连…...
数据库性能优化(查询优化、索引优化、负载均衡、硬件升级等方面)
数据库性能优化是提升数据库系统整体性能和响应速度的一系列技术和策略。它可以通过多种方式来实现,包括优化查询语句、索引设计、硬件升级、负载均衡等手段。 合适的数据模型设计 正确的数据模型设计是性能优化的基石。合理的表结构和关系设计可以减少冗余数据&…...
谁说 Linux 不能玩游戏?
在上个世纪最早推出视频游戏的例子是托马斯戈德史密斯(Thomas T. Goldsmith Jr.)于1947年开发的“「Cathode Ray Tube Amusement Device」”,它已经显着发展,并且已成为人类生活中必不可少的一部分。 通过美国游戏行业的统计数据&…...
发电机负载测试方案
发电机负载测试是为了评估发电机在不同负载条件下的性能和稳定性。下面是一个可能的发电机负载测试方案: 测试前准备: - 确定测试的负载范围和条件,包括负载大小、负载类型(如电阻性、感性或容性负载)、负载持续时间等…...
Flask三种文件下载方法
Flask 是一个流行的 Python Web 框架,它提供了多种方法来实现文件下载。在本文中,我们将介绍三种不同的方法,以便你能够选择最适合你应用程序的方法。 方法一:使用 send_file 函数 send_file 函数是 Flask 中最常用的文件下载方法…...
OpenCV C++ 图像处理实战 ——《基于NCC多角度多目标匹配》
OpenCV C++ 图像处理实战 ——《基于NCC多角度多目标匹配》 一、结果演示二、NCC模板匹配2.1、OpenCV matchTemplate2.2、多角度2.3、多目标2.4、NMS非极大值抑制三、代码实现3.1 制作模板3.1 单目标匹配3.1.1 模板图像旋转3.1.2 旋转目标坐标3.2 多目标匹配3.2.1 制作模板3.2.…...
【书籍篇】Spring实战第4版 第2部分 Web中的Spring
Spring实战第4版 第2部分 Web中的Spring 五. 构建Spring Web应用程序5.1 SpirngMVC请求流程5.2 搭建Spring MVC5.2.1 配置DispatcherServlet5.2.2 配置WebConfig5.2.3 配置RootConfig 5.3 编写基本的控制器5.4 Spittr首页5.6 复杂的控制器5.6.1 定义类级别的请求处理5.6.2 传递…...
IC - 基础知识 - SOC与MCU
说明 工作中有涉及到SOC和MCU,非嵌入式专业,对两个概念理解不是很清晰。 共同点 MCU和SOC是两种常见的集成电路 (IC) 设计形式,它们的区别在于它们的设计目的和应用场景。工作中将MCU和SOC都称为IC也是没问题的,但是专业人员会…...
【elasticsearch+kibana基于windows docker安装】
创建网络:es和kibana容器互联 docker network create es-net加载镜像 docker pull elasticsearch:7.12.1运行 docker run -d --name es -p 9200:9200 -p 9300:9300 -e "discovery.typesingle-node" -e ES_JAVA_OPTS"-Xms512m -Xmx512m" -v $…...
VMware网络设置 桥接模式 NAT VMNET0 1 8
1.桥接模式 虚拟机与主机并列 可拥有独立IP 主机与虚拟机之间,以及各虚拟机之间都可以互访。对应虚拟机就被当成主机所在以太网上的一个独立物理机来看待,各虚拟机通过默认的 VMnet0 网卡与主机以太网连接,虚拟机间的虚拟网络为 VMnet0。这…...
【MongoDB】MongoExport如何过滤数据导出
问题 使用MongoDB处理导出数据时,想增加数据过滤操作。 例如:导出所有isGirl为true的所有数据。 分析 在mongoexport说明文档中找到了query字段和queryFile字段,用来进行数据查询匹配导出。 query字段 后面直接跟 json格式数据。 queryF…...
吴恩达《机器学习》6-1->6-3:分类问题、假设陈述、决策界限
一、什么是分类问题? 在分类问题中,我们试图预测的变量𝑦是离散的值,通常表示某种类别或标签。这些类别可以是二元的,也可以是多元的。分类问题的示例包括: 判断一封电子邮件是否是垃圾邮件(二…...
C语言 用字符串比较函数cmp来做一个门禁:账号密码是否匹配 (干货满满)
#include<stdio.h> #include<string.h> void fun04() {for (int i 0; i < 3; i){char *str01 "hello";char uname[100] ;printf("请输入账号");scanf("%s",uname);char *str02 "123456";char pword[100];printf(&qu…...
Uniapp实现多语言切换
前言 之前做项目过程中,也做过一次多语言切换,大致思想都是一样的,想了解的可以看下之前的文章C#WinForm实现多语言切换 使用i18n插件 安装插件 npm install vue-i18n --saveMain.js配置 // 引入 多语言包 import VueI18n from vue-i18n…...
企业数字化转型与供应链效率-基准回归复刻(2007-2022年)
参照张树山(2023)的做法,本团队对来自统计与决策《企业数字化转型与供应链效率》一文中的基准回归部分进行复刻。文章实证检验企业数字化转型对供应链效率的影响。用年报词频衡量上市公司数字化转型程度,以库存周转天数来衡量供应…...
BetterJoy完整配置指南:5分钟让Switch手柄在PC上完美运行
BetterJoy完整配置指南:5分钟让Switch手柄在PC上完美运行 【免费下载链接】BetterJoy Allows the Nintendo Switch Pro Controller, Joycons and SNES controller to be used with CEMU, Citra, Dolphin, Yuzu and as generic XInput 项目地址: https://gitcode.c…...
从多路复用到三维光阵:Arduino驱动8x8x8 LED立方体全解析
1. 项目概述:用Arduino点亮一个三维世界几年前,我第一次在创客展上看到一个8x8x8的LED立方体,那种由数百个光点构成的、在三维空间中流动的动画效果,瞬间就把我吸引住了。它不像普通的平面LED屏,而是真正有“深度”的光…...
新能源车轻量化为什么开始盯上高强镁合金?
续航,是悬在每一台纯电动汽车头上的达摩克利斯之剑。多充一度电、多堆一些正极材料,是一条路;但还有另一条路——把车造得更轻。 SAE(美国汽车工程师学会)的测算已经被反复引用:整车每减重100千克ÿ…...
从CTF题看RSA安全:为什么你的密钥不能‘共享素数’?
从CTF实战看RSA密钥安全:那些年我们踩过的坑 在网络安全竞赛和实际渗透测试中,RSA算法的错误实现方式往往成为突破的关键点。本文将通过典型CTF赛题案例,揭示五种常见RSA实现漏洞背后的数学原理和安全启示,帮助开发者在实际项目中…...
基于双T振荡器的正弦波LED调光电路设计与实践
1. 项目概述:用双T振荡器实现正弦波LED调光最近在捣鼓一些氛围灯项目,总感觉用单片机PWM做的呼吸灯效果有点“硬”,那种线性的明暗变化看久了难免审美疲劳。于是翻出以前模拟电路的老本行,琢磨着能不能用纯硬件的方式,…...
破解材料数据荒:合成数据与随机森林预测聚合物阻燃性能
1. 项目概述与核心挑战在材料研发领域,尤其是涉及公共安全的聚合物阻燃性研究,传统实验方法正面临巨大瓶颈。想象一下,你是一位材料工程师,需要设计一种用于高铁内饰或高层建筑电缆护套的新型聚合物,其阻燃性能必须满足…...
Qri高级功能:如何使用JSON Schema验证和描述数据集结构
Qri高级功能:如何使用JSON Schema验证和描述数据集结构 【免费下载链接】qri youre invited to a data party! 项目地址: https://gitcode.com/gh_mirrors/qr/qri Qri是一个强大的开源数据协作工具,它提供了丰富的功能来帮助用户管理、共享和验证…...
终极免费音乐解锁工具:5步轻松解密你的加密音乐文件
终极免费音乐解锁工具:5步轻松解密你的加密音乐文件 【免费下载链接】unlock-music 在浏览器中解锁加密的音乐文件。原仓库: 1. https://github.com/unlock-music/unlock-music ;2. https://git.unlock-music.dev/um/web 项目地址: https:/…...
为什么你的霓虹总像“塑料灯带”?Midjourney光子散射模拟缺陷曝光:3个被官方隐瞒的--sref调参禁区
更多请点击: https://kaifayun.com 第一章:为什么你的霓虹总像“塑料灯带”? 霓虹效果在现代 UI 设计中无处不在——按钮悬停、加载指示器、焦点高亮……但多数实现却流于表面:生硬的 box-shadow、固定色值的渐变边框、缺乏物理感…...
Windows键盘重映射终极指南:如何使用SharpKeys专业解决方案告别误触烦恼
Windows键盘重映射终极指南:如何使用SharpKeys专业解决方案告别误触烦恼 【免费下载链接】sharpkeys SharpKeys is a utility that manages a Registry key that allows Windows to remap one key to any other key. 项目地址: https://gitcode.com/gh_mirrors/sh…...
