我有一个名为forum.sql的大型mySQL数据库转储。我想只恢复一个表,但是当我恢复完整的数据库时,导入“后”表需要很长时间。如何在恢复mysql数据库时跳过表格?
是否有任何选项来恢复此数据库跳过“后”表?
我有一个名为forum.sql的大型mySQL数据库转储。我想只恢复一个表,但是当我恢复完整的数据库时,导入“后”表需要很长时间。如何在恢复mysql数据库时跳过表格?
是否有任何选项来恢复此数据库跳过“后”表?
据我所知,没有。
您必须手动编辑转储文件中不需要的表的CREATE
和INSERT
语句。
我不认为你可以做到这一点。但是,您可以在需要时单独转储表,使用--tables
myqsldump选项。因此,您可以为post
表生成转储,并为其余表生成另一个转储。
例子:
mysqldump -u USERNAME -pPASSWORD --tables TABLE_NAME database_name > TABLE_NAME.sql
感谢您的回复我知道我可以转储只有表,但我想恢复数据库其他表 – user724001 2011-04-25 16:55:01
你可以改变你的DUMP语句,以便它使用忽略表? http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html#option_mysqldump_ignore-table
如果您要从转储文件恢复,只需写下行号,就可以轻松地在不使用此表的情况下构建新的转储文件。
初始行
> grep dumpfile.sql -ne "Dumping data for table \`avoid_tablename\`" -m 1
43:-- Dumping data for table `avoid_tablename`
共线
> wc -l dumpfile.sql
63 dumpfile.sql
从从其减去63创建一个新的文件
> head -n 43 dumpfile.sql > dumpfile-lite.sql
> tail -n 20 dumpfile.sql >> dumpfile-lile.sql
20来 - 43
不干净,但有用
这可以在不知道文件中的总行的情况下完成。 tail -n +43
可能的重复http://stackoverflow.com/questions/1013852/can-i-restore-a-single-table-from-a-full-mysql-mysqldump-file – KCD 2012-04-02 00:35:22