猿问
下载APP

我可以从完整的mysql mysqldump文件中恢复单个表吗?

我有一个我的mysql数据库的mysqldump备份,包括我们所有的表,大约440兆。我想从mysqldump中恢复其中一个表的内容。这可能吗?从理论上讲,我可以删除重建我想要的表的部分,但我甚至不知道如何有效地编辑大小的文本文档。


慕圣8478803
浏览 50回答 3
3回答

波斯汪

您可以尝试使用sed以仅提取所需的表。假设您的表名是mytable,文件mysql.dump是包含您的巨大转储的文件:$ sed -n -e '/CREATE TABLE.*`mytable`/,/CREATE TABLE/p' mysql.dump > mytable.dump这将在文件中复制mytable.dump位于CREATE TABLE mytable下CREATE TABLE一个表和下一个表之间的文件。然后,您可以调整mytable.dump包含表结构的文件mytable和数据(列表INSERT)。

富国沪深

我使用了uloBasEI的sed命令的修改版本。它包括前面的DROP命令,并读取直到mysql完成将数据转储到您的表(UNLOCK)。为我工作(重新)将wp_users导入到一堆Wordpress站点。sed -n -e '/DROP TABLE.*`mytable`/,/UNLOCK TABLES/p' mydump.sql > tabledump.sql

暮色呼如

这可以更轻松地完成吗?这就是我做的方式:创建临时数据库(例如恢复):mysqladmin -u root -p create restore恢复临时数据库中的完整转储:mysql -u root -p restore <fulldump.sql转储要恢复的表:mysqldump恢复mytable> mytable.sql在另一个数据库中导入表:mysql -u root -p database <mytable.sql
打开App,查看更多内容
随时随地看视频慕课网APP
我要回答