首页数据库mysqldump还原数据库 mysqldump导出的表怎么还原

mysqldump还原数据库 mysqldump导出的表怎么还原

编程之家2023-10-1791次浏览

其实mysqldump还原数据库的问题并不复杂,但是又很多的朋友都不太了解mysqldump导出的表怎么还原,因此呢,今天小编就来为大家分享mysqldump还原数据库的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

mysqldump还原数据库 mysqldump导出的表怎么还原

如何快速从mysqldump备份文件里面还原某个表

你好!

这个问题不是MYSQL数据库方面的问题,而是如何从一个文本文件中取出需要的部分内容的问题。从数据库角度来说,没有什么好办法,可以使用操作系统中的文本编辑处理工具来实现。例如,如果不是太大,几百M可以用editplus,ultraedit等编辑工具打开找你需要sql拷贝出来导入。

如果是linux/unix,可参考如下方法:

1.使用 awk:

可以先到原数据库中使用'show tables;'查看数据库表的列表,注意,此列表已经按照字母排序,例如:

table1

mysqldump还原数据库 mysqldump导出的表怎么还原

table2

table3

然后使用awk来过滤sql语句,假设你要恢复 table2表,可以使用下面的语句:

awk‘/^-- Table structure for table.table2./,/^-- Table structure for table.table3./{print}’ mydumpfile.sql>/tmp/recovered_table.sql

2.使用sed:

与上面类似,假设你要恢复 table2表,可以使用下面的语句:

mysqldump还原数据库 mysqldump导出的表怎么还原

cat mydumpfile.sql| sed-n-e'/Table structure for table.test1./,/Table structure for table.test2./p'>/tmp/extracted_table.sql

满意望采纳,谢谢:)

mysql用mysqldump命令备份之后不能正确还原

通用规律只有使用--all-databases(-A)会 ERROR 1356,那就看看他到底备份了什么东西。于是喊上同事一起 less看了下,上下扫了两眼。突然发现:1.备份 SQL文件里 DROP掉了 mysql.proc;2.后CREATE了一个新的 mysql.proc;3. LOCK TABLES和 UNLOCK TABLES中间居然没有备份 CREATE ROUTINE任何数据?这不就是相当于每次导入全备都给我一个没有任何 sys schema routines的全新 mysql.proc表?那这不就异常的尴尬?

---- Table structure for table `proc`--

---- Dumping data for table `proc`-

真相大白在官方文档【sys-schema-usage】官方文档明确的告诉我们不会备份 sys库。但在使用 mysqldump在执行--all-databases会清空 mysql.proc导致 sys无法正常使用;这是一个 BUG,并且只存在于 MySQL 5.7.x!

1、mysql_upgrade install or upgrade sys schema

这个方案适用于 sys库已经因为 mysqldump导入而损坏的情况下使用。

注意:mysql_upgrade在修理 sys库的同时,还修理 mysql库和用户库表(期间加锁且速度一般),有极小可能会误伤;使用 mysql_upgrade的时候要加上--upgrade-system-tables,不然会扫描用户库表。

2、全备时同时备份 sys库

这个方案适用于需要还原的数据库,sys库也不太正常的情况下使用;在全备后额外再备份一份 sys库用于修复。

注意:不适用于做主从时使用它。

3、使用 databases全备

这个方案适用于所有场景的全备需求,100%安全。

4、使用 mysql-sys开源代码

如果你的数据库 sys全部中招了,又是生产库。那你只能用这个方法;

mysql-sys:https://github.com/mysql/mysql-sys

中记录了 sys库的创建语句将文件下载到本地,然后根据数据库版本,执行以下命令即可。

如何使用命令来备份和还原MySQL数据库

备份数据库

使用mysqldump命令备份数据库

复制代码代码如下:

#如果要将game数据库进行备份:

mysqldump-u root-p game> game_backup.sql

#如果希望备份所有的数据库:

mysqldump-u root-p--all-databases> all_backup.sql

还原数据库

1、使用mysql命令还原数据库

将game_backup.sql还原至 game数据库:

复制代码代码如下:

mysql-u root-p game< game_backup.sql

2、使用source命令还原数据库

如果数据库过大,建议可以使用source命令

复制代码代码如下:

mysql> source game_backup.sql

mysqldump导出的表怎么还原

你好!

这个问题不是MYSQL数据库方面的问题,而是如何从一个文本文件中取出需要的部分内容的问题。从数据库角度来说,没有什么好办法,可以使用操作系统中的文本编辑处理工具来实现。例如,如果不是太大,几百M可以用editplus,ultraedit等编辑工具打开找你需要sql拷贝出来导入。

如果是linux/unix,可参考如下方法:

1.使用 awk:

可以先到原数据库中使用'show tables;'查看数据库表的列表,注意,此列表已经按照字母排序,例如:

table1

table2

table3

然后使用awk来过滤sql语句,假设你要恢复 table2表,可以使用下面的语句:

awk‘/^-- Table structure for table.table2./,/^-- Table structure for table.table3./{print}’ mydumpfile.sql>/tmp/recovered_table.sql

2.使用sed:

与上面类似,假设你要恢复 table2表,可以使用下面的语句:

cat mydumpfile.sql| sed-n-e'/Table structure for table.test1./,/Table structure for table.test2./p'>/tmp/extracted_table.sql

关于mysqldump还原数据库和mysqldump导出的表怎么还原的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

李颖芝个人资料(李颖芝的个人资料)oracle数据库迁移方案 oracle数据库迁移方案 文档怎么写