Восстановление резервной копии mysql с помощью пакетного файла windows, который вызывает файл. sql - PullRequest
2 голосов
/ 14 июля 2020

Я пытаюсь восстановить mysql базу данных из резервной копии. Я смог сделать это в командной строке напрямую, используя

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

Это сработало нормально.

Я пытаюсь поместить ту же строку в файл .txt вместе с другими mysql заявления и назовите это. txt из командной строки mysql. У меня есть несколько элементов удаления, а затем оператор восстановления в файле .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;

Когда я вызываю этот выше .txt файл из подсказки mysql, он выполняет операторы удаления, но при восстановлении выдает ошибки. Он говорит Неизвестная база данных 'ereplicationdestinationtestdb. sql'. Пожалуйста, дайте мне знать, как это правильно сделать.

Ответы [ 2 ]

0 голосов
/ 20 июля 2020

Это подсказка, а не команда:

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, если вы просто хотите удалить все строки.

0 голосов
/ 20 июля 2020

Ваши операторы удаления выполняются, поскольку каждой таблице предшествует имя схемы, как показано ниже.

Удалить из Db.tbl1; Удалить из Db.tbl2;

Но, пожалуйста, подтвердите, не пропустили ли вы имя схемы, по которой необходимо восстановить таблицы? Согласно упомянутой вами ошибке, похоже, ваше восстановление. sql не знает, в какую схему необходимо импортировать таблицы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...