为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

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

3 回答

?
波斯汪

TA贡献1811条经验 获得超4个赞

您可以尝试使用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)。


查看完整回答
反对 回复 2019-09-18
?
富国沪深

TA贡献1790条经验 获得超9个赞

我使用了uloBasEI的sed命令的修改版本。它包括前面的DROP命令,并读取直到mysql完成将数据转储到您的表(UNLOCK)。为我工作(重新)将wp_users导入到一堆Wordpress站点。


sed -n -e '/DROP TABLE.*`mytable`/,/UNLOCK TABLES/p' mydump.sql > tabledump.sql


查看完整回答
反对 回复 2019-09-18
?
暮色呼如

TA贡献1853条经验 获得超9个赞

这可以更轻松地完成吗?这就是我做的方式:


创建临时数据库(例如恢复):


mysqladmin -u root -p create restore


恢复临时数据库中的完整转储:


mysql -u root -p restore <fulldump.sql


转储要恢复的表:


mysqldump恢复mytable> mytable.sql


在另一个数据库中导入表:


mysql -u root -p database <mytable.sql


查看完整回答
反对 回复 2019-09-18
  • 3 回答
  • 0 关注
  • 711 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信