我正在尝试从备份中恢复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
运行得更快,如果您只想删除所有行的话。