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

时间:2016-02-25 03:13:18

标签: php mysql database mysqldump sql-insert

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

我有一个<input type="radio" name="wifi_price" id="wifi" value="200">Wifi Price</input> <script>document.write(price);</script> 文件,其中包含一个表所需的所有信息,但其余信息将覆盖其他表的重要信息。

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

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

我该怎么办?

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

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

.sql

3 个答案:

答案 0 :(得分:2)

你可以试试吗

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

答案 1 :(得分:0)

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

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

  1. 创建新的MYSQL架构
  2. 导入自包含备份
  3. 将“Target Schema”设置为新的空数据库(.sql转储不得包含架构创建代码)
  4. 还原备份
  5. 转储表到csv并将其导入生产实时数据库
  6. 删除还原架构
  7. 要在命令行恢复到架构,您似乎使用:

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

答案 2 :(得分:0)

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导出它不会。