Mysqldump - 如何从此文件恢复单个 table?
Mysqldump - How to restore a single table from this file?
我只需要恢复数据库中的一个 table。
我有一个 .sql
文件,其中包含一个 table 所需的所有信息,但其余的会覆盖其他 table 的重要信息。
而不是使用解决方案 here - 使用我从未听说过的工具,我认为手动完成它会更有把握。
不幸的是,MySqlDump 生成的 GIANT 插入行太长,无法粘贴到 mysql 命令行...
我该怎么办?
我应该像上面 link 描述的那样使用 sed 吗?
或者我可以将特定 table 的命令从 mysqldump.sql
复制粘贴到新的 .sql
文件中,然后调用:
mysql -u root -p -h localhost < copyPasteFile.sql
我不确定这是否是最好的方法,但我只是启动了一个新模式并将备份恢复到其中,转储我需要的数据并将其导入到生产数据库中。
我使用 MYSQL 工作台,这样更容易,但可能可以在命令行重现以下步骤
- 创建新的MYSQL架构
- 导入独立备份
- 将"Target Schema"设置为新的空数据库(.sql转储不得包含模式创建代码)
- 恢复备份
- 转储 table 到 csv 并将其导入生产实时数据库
- 删除还原架构
要在命令行恢复模式,您使用的是:
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 没有 "use somedatabase;" 如果它是用 phpmyadmin 导出的,它可能有那个,如果它是用 mysqldump 导出的则不会。
你可以试试
mysql -u root -p databasename -h localhost < copyPasteFile.sql
我只需要恢复数据库中的一个 table。
我有一个 .sql
文件,其中包含一个 table 所需的所有信息,但其余的会覆盖其他 table 的重要信息。
而不是使用解决方案 here - 使用我从未听说过的工具,我认为手动完成它会更有把握。
不幸的是,MySqlDump 生成的 GIANT 插入行太长,无法粘贴到 mysql 命令行...
我该怎么办?
我应该像上面 link 描述的那样使用 sed 吗?
或者我可以将特定 table 的命令从 mysqldump.sql
复制粘贴到新的 .sql
文件中,然后调用:
mysql -u root -p -h localhost < copyPasteFile.sql
我不确定这是否是最好的方法,但我只是启动了一个新模式并将备份恢复到其中,转储我需要的数据并将其导入到生产数据库中。
我使用 MYSQL 工作台,这样更容易,但可能可以在命令行重现以下步骤
- 创建新的MYSQL架构
- 导入独立备份
- 将"Target Schema"设置为新的空数据库(.sql转储不得包含模式创建代码)
- 恢复备份
- 转储 table 到 csv 并将其导入生产实时数据库
- 删除还原架构
要在命令行恢复模式,您使用的是:
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 没有 "use somedatabase;" 如果它是用 phpmyadmin 导出的,它可能有那个,如果它是用 mysqldump 导出的则不会。
你可以试试
mysql -u root -p databasename -h localhost < copyPasteFile.sql