使用mysql命令行进行mysqldump备份时出现错误

11

你好,我正在尝试从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命令行进行备份。

提前致谢。

6个回答

22

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


你可以通过 SSH 访问它来运行 mysql -u username -ppassword 命令,方法相同。 - Timur

3
问题在于您是从MySQL提示符而不是Linux shell中执行命令。退出mysql命令行,并从操作系统shell运行该命令(删除末尾的分号)。

3
在命令中,您不能在-ppassword之间加空格。同时,必须在命令行中运行mysqldump,而不是在mysql shell中运行。
请尝试在命令行上执行以下内容。
mysqldump -u username -ppassword databasename > backup.sql

我也尝试过了,但是没有用,我还是得到同样的错误。如何在命令行中运行mysqldump?请告诉我。谢谢回复。 - harshakasireddy

2

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

mysqldump -u username -ppassword databasename > backup.sql

例如,如果用户名为'root',密码为'abcdefg',数据库名称为'mydatabase',则语法如下:
mysqldump -u root -pabcdefg mydatabase > backup.sql

backup.sql是用于存储备份的文件名,您可以使用任何名称。


不要对现有答案进行任何添加。 - hawk
这对我来说实际上解决了问题。使用--password=PASSWORD真的很有帮助,完美地解决了问题... - gordon_freeman

2

在看到这个问题之前,我不理解其他人想表达什么。

问题在于,你无法访问“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

注意:在执行代码时,您将被要求提供密码。实际上,如果您直接在转储行中输入密码,"mysqldump.exe"会建议您这样做。

注意2:如果您正在使用root用户的默认设置(即空密码),则需要在要求输入密码时只需按下"Enter"键即可。

注意3:"test.sql"文件将在"mysqldump.exe"所在的同一目录中创建。在此示例中,位于:"C:\xampp\mysql\bin"。


0

针对Windows系统 打开命令提示符并切换到

*cd C:\Program Files\MySQL\MySQL Server 8.0\bin

mysqldump -u root -p DBNAME > D:/DB_backup/DBNAME.sql*

炸裂的伙计们


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接