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)。
TA贡献1790条经验 获得超9个赞
我使用了uloBasEI的sed命令的修改版本。它包括前面的DROP命令,并读取直到mysql完成将数据转储到您的表(UNLOCK)。为我工作(重新)将wp_users导入到一堆Wordpress站点。
sed -n -e '/DROP TABLE.*`mytable`/,/UNLOCK TABLES/p' mydump.sql > tabledump.sql
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
添加回答
举报