簡體   English   中英

通過windows批處理文件恢復mysql備份,該批處理文件調用.sql文件

[英]Restoring mysql backup through windows batch file, which calls the .sql file

我試圖從備份中恢復 mysql 數據庫。 我可以在命令提示符下直接使用

mysql> -u username -ppassword < E:\replication\DestinationTest\restore.sql.

這工作得很好。

我試圖將同一行與其他 mysql 語句一起放在 a.txt 文件中並調用它。 mysql 命令提示符中的 txt 文件。我有幾個刪除語句,然后是 .txt 文件中的恢復語句。 它看起來像這樣:

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 提示符調用此 above.txt 文件時,它執行刪除語句但在恢復部分出錯。 它說未知數據庫'ereplicationdestinationtestdb.sql'。 請告訴我,正確的方法是什么。

您的刪除語句正在執行,因為每個表前面都有如下架構名稱。

從 Db.tbl1 中刪除; 從 Db.tbl2 中刪除;

但是請確認您是否錯過了需要恢復表的模式名稱? 根據您提到的錯誤,您的 restore.sql 似乎不知道需要將表導入哪個模式。

這是一個“提示,而不是命令:

mysql>

所以這是無效的:

mysql> -u username -ppassword < E:\replication\DestinationTest\restore.sql.

另外,最后的句號可能是一個錯字。

這可能是批處理文件中的有效行:

mysql -u username -ppassword < E:\replication\DestinationTest\restore.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:\replication\DestinationTest\restore.sql
mysql -u username -ppassword < deletes.sql

PS: TRUNCATE TABLE Db.tbl4; 如果您只想刪除所有行,則運行速度比DELETE快。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM