繁体   English   中英

Mysqldump - 如何从此文件恢复单个表?

[英]Mysqldump - How to restore a single table from this file?

我需要在我的数据库中只恢复一个表。

我有一个.sql文件,其中包含一个表所需的所有信息,但其余的将覆盖其他表的重要信息。

而不是在这里使用解决方案 - 使用我从未听说过的工具,我认为手动执行它会更加确定。

不幸的是,MySqlDump生成的GIANT插入行太长,无法粘贴到mysql命令行中......

我该怎么办?

我应该像上面的链接一样使用sed吗?

或者我可以将mysqldump.sql中特定表的命令粘贴到新的.sql文件中,然后调用:

mysql -u root -p -h localhost < copyPasteFile.sql

你可以尝试一下

mysql -u root -p databasename -h localhost < copyPasteFile.sql 

我不确定它是否是最佳方式,但我只是启动一个新架构并将备份恢复到它,转储我需要的数据并将其导入生产数据库。

我使用MYSQL工作台使其更容易,但可以在命令行中重现以下步骤

  1. 创建新的MYSQL架构
  2. 导入自包含备份
  3. 将“Target Schema”设置为新的空数据库(.sql Dump不能包含模式创建代码)
  4. 恢复备份
  5. 转储表到csv并将其导入生产实时数据库
  6. 删除还原架构

要在命令行还原到架构,它看起来像您使用:

mysql -u <user name> -p <password> <database name> < sqlfilename.sql

mysql -uuser -ppassword -e "create database temporary"

mysql -uuser -ppassword temporary < copyPasteFile.sql

mysqldump -uuser -ppassword temporary yourtable > onlythattable.sql

mysql -uuser -ppassword therealdb < onlythattable.sql

mysql -uuser -ppassword -e "drop database temporary"

确保copyPasteFile.sql没有“使用somedatabase;” 如果它是用phpmyadmin导出的,它可能有,如果它是用mysqldump导出它不会。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM