通过windows批处理文件恢复mysql备份,该文件调用.sql文件



我正在尝试从备份中恢复mysql数据库。我可以直接使用在命令提示符下完成

mysql> -u username -ppassword < E:replicationDestinationTestrestore.sql.

这很好。

我正试图将同一行与其他mysql语句一起放在.txt文件中并调用它。txt文件。我有一些删除雄蕊,然后在.txt文件中的restore语句。它看起来像这样:

enter code here
Delete from Db.tbl1;
Delete from Db.tbl2;
Delete from Db.tbl3;
Delete from Db.tbl4;
Delete from Db.tbl5;
-h Server -D DB -u username -ppassword < E:replicationDestinationTestDb.sql;

当我从mysql提示符调用上面的.txt文件时,它执行delete语句,但在还原部分出错。上面写着未知数据库"ereplicationdestinationtestdb.sql"。请告诉我,什么是正确的方法。

您的delete语句正在执行,因为每个表前面都有模式名称,如下所示。

从Db.tbl1中删除;从Db.tbl2中删除;

但请确认您是否遗漏了需要将表还原到的架构名称?根据您提到的错误,您的restore.sql似乎不知道表需要导入到哪个模式中。

这是一个"提示,而不是命令:

mysql>

所以这是无效的:

mysql> -u username -ppassword < E:replicationDestinationTestrestore.sql.

此外,结尾的句号可能是一个拼写错误。

这将是批处理文件中潜在的有效行:

mysql -u username -ppassword < E:replicationDestinationTestrestore.sql

如果你想在批处理文件中做一些其他的事情,那么首先用SQL语句构建一个文本文件,比如

Delete from Db.tbl1;
Delete from Db.tbl2;
Delete from Db.tbl3;
Delete from Db.tbl4;
Delete from Db.tbl5;

不要在那个文件里放其他东西。让我们将这些文件称为deletes.sql。现在,我们将把两者放在一起——两行:

mysql -u username -ppassword < E:replicationDestinationTestrestore.sql
mysql -u username -ppassword < deletes.sql

PS:TRUNCATE TABLE Db.tbl4;DELETE运行得更快,如果您只想删除所有行的话。

相关内容

  • 没有找到相关文章

最新更新