gpt4 book ai didi

mysqlimport 使用转储

转载 作者:行者123 更新时间:2023-11-29 05:31:09 25 4
gpt4 key购买 nike

我需要恢复已转储的数据库,但不丢弃表中的现有行。

转储我使用:

mysqldump -u root --password --databases mydatabase > C:\mydatabase.sql

要恢复,我使用 mysql 命令,因为它会丢弃所有现有行,但显然 mysqlimport 应该可以解决问题。但是怎么办?运行:

mysqlimport -u root -p mydatabase c:\mydatabase.sql

说“表 mydatabase.mydatabase 不存在”。它为什么要找表?如何在不丢弃现有表中现有行的情况下恢复整个数据库的转储?如果 mysqlimport 需要,我可以转储单个表。

怎么办?

最佳答案

如果您担心踩踏现有行,您需要按如下方式将其转储到 mysqldump 中:

MYSQLDUMP_OPTIONS="--no-create-info --skip-extended-insert"
mysqldump -uroot --ppassword ${MYSQLDUMP_OPTIONS} --databases mydatabase > C:\mydatabase.sql

这将执行以下操作:

  • 删除 CREATE TABLE 语句并仅使用 INSERT。
  • 它一次只会插入一行。这有助于减少具有重复键的行

通过以这种方式执行 mysqldump,现在您可以像这样导入

mysql -uroot -p --force -Dtargetdb < c:\mydatabase.sql

试一试!!!

警告:使用--skip-extended-insert 进行转储会使mysqldump 变得非常大,但至少您可以控制一个接一个地完成每个副本。这也会增加重新加载 mysqldump 的时间。

关于mysqlimport 使用转储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14592028/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com