在mysql命令行中使用mysqldump进行备份时出错

时间:2011-12-20 12:18:56

标签: mysql mysqldump

您好我正在尝试从mysql命令行客户端进行备份。我正在使用mysqldump来使用用户名和密码进行备份。 以下是我用于备份数据库的命令。

mysql> mysqldump -u username -p password databasename > backup.sql;

我收到了以下错误

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near 'mysql
dump -u username -p password fms > backup.sql' at line 1

虽然命令似乎是正确的,但我仍然会收到错误。请告诉我有没有其他方法从mysql命令行进行备份。

提前致谢。

5 个答案:

答案 0 :(得分:18)

mysqldump不是MySQL命令,它是命令行实用程序。您必须从shell命令行调用它。

答案 1 :(得分:3)

问题是您是从MySQL提示符而不是Linux shell执行命令。退出mysql命令行并从OS shell运行命令(删除末尾的分号)

答案 2 :(得分:3)

在您的命令中,-ppassword之间不能有空格。此外,mysqldump必须在命令行上运行,而不是在mysql shell中运行。

在命令行上尝试此操作

mysqldump -u username -ppassword databasename > backup.sql

答案 3 :(得分:2)

在我看到this question之前,我不明白其他人想说的是什么。

问题是,您无法访问“mysql.exe”并将mysqldump放入其中。 “mysqldump.exe”是另一个文件,因此您必须从操作系统的命令行执行它,并将参数传递给执行。

所以,在DOS中(当然是在Windows上),请说明你在目录中:“C:\ xampp \ mysql \ bin”,然后你可以调用以下命令:

mysqldump -u root -p test > test.sql

您也可以这样调用它,因此您可以明确地看到您正在执行文件:

.\mysqldump.exe -u root -p test > test.sql

如果它可以更干净,你会在DOS中看到这一行:

c:\xampp\mysql\bin>.\mysqldump.exe -u root -p test > test.sql

Ps:在该代码中,系统会要求您在执行后通知密码。实际上,如果您将密码直接放在转储行中,“mysqldump.exe”会提供给您的推荐。

Ps 2:如果您使用root用户的默认设置(即使用空密码),则只需在要求通知密码时按“Enter”键。

Ps 3:“test.sql”将在“mysqldump.exe”的同一目录中创建。在本例中,在:“C:\ xampp \ mysql \ bin”。

答案 4 :(得分:1)

在命令行界面中键入此内容,而不是在MYSQL命令行中输入:

mysqldump -u username -ppassword databasename > backup.sql

例如,如果用户名是“root”,密码是“abcdefg”,数据库名称是“mydatabase”,则语法为:

mysqldump -u root -pabcdefg mydatabase > backup.sql

backup.sql是存储备份的文件的名称,因此您可以拥有任何名称。