怎么在MySQL中使用全库备份数据恢复单表数据?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

提取建表语句

sed -e '/./{H;$!d;}' -e 'x;/CREATE TABLE `表名`/!d;q' mysqldump.sql(备份文件的文件名)

sed-e'/./{H;$!d;}'-e'x;/CREATETABLE`fdc_document`/!d;q'fdcsqlmysql-2018_11_30-03_00_01.sqlDROPTABLEIFEXISTS`fdc_document`;/*!40101SET@saved_cs_client=@@character_set_client*/;/*!40101SETcharacter_set_client=utf8*/;CREATETABLE`fdc_document`(`id`int(10)unsignedNOTNULLAUTO_INCREMENTCOMMENT'文档ID',`uid`int(10)unsignedNOTNULLDEFAULT'0'COMMENT'用户ID',`name`char(40)NOTNULLDEFAULT''COMMENT'标识',.........`entrust_rule`tinyint(3)unsignedNOTNULLDEFAULT'0'COMMENT'经纪人点击是否和用户签委托协议:1为有;0为没有',`audit`tinyint(3)NOTNULLDEFAULT'0'COMMENT'审核:0为未审核;1为图片已审核;2为描述已审核;3为图片和描述都已审核',PRIMARYKEY(`id`),KEY`idx_area_house`(`partition`,`category_id`,`status`,`is_off`)USINGBTREE,KEY`idx_model_house`(`model_id`,`status`,`is_off`)USINGBTREE,KEY`idx_community_house`(`community_id`,`estate`,`status`,`is_off`)USINGBTREE,KEY`idx_uid_house`(`uid`,`model_id`,`is_off`)USINGBTREE,KEY`idx_pid_house`(`id`,`pid`,`status`,`is_off`)USINGBTREE,KEY`is_video`(`is_video`)USINGBTREE)ENGINE=InnoDBAUTO_INCREMENT=211138DEFAULTCHARSET=utf8;/*!40101SETcharacter_set_client=@saved_cs_client*/;

提取表数据

grep 'INSERT INTO表名' mysqldump.sql(备份文件的文件名) > table_data.sql

这里应该执行grep 'INSERT INTOfdc_document' fdcsqlmysql-2018_11_30-03_00_01.sql > document.sql

执行完后会得到文件document.sql,这就是需要的单独的表文件,就可以正常恢复表数据了

建库建表

先创建数据库,再根据上面的SQL语句创建表fdc_document

导入表数据

MySQL[document]>souce/data/backup/mysql/document.sql

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。