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

Error while taking backup with mysqldump in mysql command line

提问人:harshakasireddy 提问时间:12/20/2011 最后编辑:matinoharshakasireddy 更新时间:9/24/2022 访问量:13458

问:

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

提前致谢。

MySQL的

评论


答:

22赞 Timur 12/20/2011 #1

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

评论

0赞 Timur 12/22/2011
与访问它以运行命令的方式相同 - 通过 SSHmysql -u username -ppassword
3赞 Wilmer 12/20/2011 #2

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

3赞 fin1te 12/20/2011 #3

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

在命令行上尝试此操作

mysqldump -u username -ppassword databasename > backup.sql

评论

0赞 harshakasireddy 12/22/2011
我也试过了,但是我遇到的错误没有用。如何在命令行中运行 mysqldump?请告诉我。感谢您的重播。
2赞 Rafael Barros 9/25/2013 #4

直到我看到这个问题,我才明白其他人想说什么。

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

因此,在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”的同一目录中创建。在此示例中,in:“C:\xampp\mysql\bin”。

2赞 krish 11/18/2013 #5

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

mysqldump -u username -ppassword databasename > backup.sql

例如,如果 username 是 'root',password 是 'abcdefg',数据库名称是 'mydatabase',则语法为:

mysqldump -u root -pabcdefg mydatabase > backup.sql

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

评论

0赞 hawk 11/18/2013
不会向现有答案添加任何内容。
0赞 gordon_freeman 5/30/2021
这实际上为我解决了问题。使用 --password=PASSWORD 让一切变得不同并且工作完美......
0赞 Prajwal S M 9/24/2022 #6

对于 WINDOWS 打开 CMD 和 CD 到

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

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