首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过调用.sql文件的windows批处理文件恢复mysql备份

问通过调用.sql文件的windows批处理文件恢复mysql备份
EN

Stack Overflow用户
提问于 2020-07-15 01:14:57
回答 2查看 79关注 0票数 1

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

代码语言:javascript
复制
mysql> -u username -ppassword < E:\replication\DestinationTest\restore.sql.

这样做效果很好。

我尝试将这一行与其他.txt语句放在一个mysql文件中,然后调用它。txt文件从mysql命令提示符。我有很少的delete和.txt文件中的restore语句。它看起来是这样的:

代码语言:javascript
复制
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:\replication\DestinationTest\Db.sql;

当我从mysql提示符调用上面的.txt文件时,它执行了delete语句,但在恢复部分出现了错误。它显示未知数据库'ereplicationdestinationtestdb.sql‘。请告诉我,做这件事的正确方法是什么。

EN

回答 2

Stack Overflow用户

发布于 2020-07-21 01:26:35

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

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

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

票数 0
EN

Stack Overflow用户

发布于 2020-07-21 03:50:39

这是“提示符,而不是命令:

代码语言:javascript
复制
mysql>

所以这是无效的:

代码语言:javascript
复制
mysql> -u username -ppassword < E:\replication\DestinationTest\restore.sql.

此外,末尾的句号可能是一个打字错误。

这可能是批处理文件中的有效行:

代码语言:javascript
复制
mysql -u username -ppassword < E:\replication\DestinationTest\restore.sql

如果要在批处理文件中执行其他操作,请首先使用SQL语句构建一个文本文件,例如

代码语言:javascript
复制
Delete from Db.tbl1;
Delete from Db.tbl2;
Delete from Db.tbl3;
Delete from Db.tbl4;
Delete from Db.tbl5;

别在那个文件里放其他东西。让我们将这些文件命名为deletes.sql。现在,我们把这两行放在一起--两行:

代码语言:javascript
复制
mysql -u username -ppassword < E:\replication\DestinationTest\restore.sql
mysql -u username -ppassword < deletes.sql

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62900505

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档