2013-05-21 34 views
2

我使用mysqldump定期备份我的MySQL数据库。这为我提供了一个带有CREATE TABLEINSERT语句的.sql文件,允许我按需恢复数据库。但是,我还没有找到从这个备份中提取特定数据的好方法,例如提取符合特定条件的某个表中的所有行。因此,我目前的做法是将整个文件恢复到一个新的临时数据库中,用新的mysqldump调用提取我实际需要的数据,删除临时数据库,然后将提取的行导入到我的真实数据库中。从完整的mysqldump备份中提取特定数据

这真的是最好的方法吗?是否有某种脚本可以直接解析.sql文件并提取相关行?我不认为grep和朋友们有一个简单的解决方案,因为mysqldump生成INSERT语句,每行插入许多值。

+0

那么,你这样做的方式似乎是最好的方式。当然,如果你需要经常这样做,最好在它上面加上一些(php)接口,以便更方便用户使用。它需要花费一些时间来开发,但是每次使用它时都会赢回... –

+0

也许有了一个好的文本编辑器,您可以运行一些正则表达式来选择或去掉sql语句。 – bcolin

+0

mysqldump就是这样,一个没有装饰的转储。你正在通过使用临时表来从转储中提取,但像@Bartdude所说的那样,编写脚本将是一条可行的路。你最终只是试图对SQL转储进行正则表达式来抵挡墙壁。 – MrCleanX

回答

1

对此的解决方案最终导入整个文件,提取我需要的数据并再次删除数据库。