我正在Windows上运行MySQL 5.5,尝试使用mysqldump:
"C:\WebServer\MySQL Server 5.5\bin\mysqldump.exe" -u user -ppassword database > "C:\backup.sql"
但得到错误:
mysqldump:未知选项' - no beep'
这是一个非常基本的命令,并且可以在另外两个开发盒上运行,所以不确定是什么导致这个?
同样的问题,注释掉(#)MySQL my.ini中的无蜂鸣声线,解决了这个问题。
我在dba.stackexchange.com上找到了this answer,这非常有帮助:
no-beep
option导致mysql
命令行客户端在发生错误时不发出蜂鸣声。如果这是你想要的选项,它应该在你的
[mysql]
[或my.ini]的my.cnf
部分。此错误表明它位于[client]
的my.cnf
部分,导致错误抛出错误,因为该选项无法识别。检查你的
my.cnf
并删除线或将其放在[mysql]
部分而不是[client]
,你应该是好的。[client]选项组由所有客户端程序读取(但不是由mysqld读取)。这使您可以指定适用于所有客户端的选项。例如,[client]是用于指定用于连接服务器的密码的完美组。 (但请确保选项文件只能由您自己读写,以便其他人无法找到您的密码。)请确保不要在[客户端]组中添加选项,除非所有客户端程序都识别您使用。如果尝试运行错误消息,则在显示错误消息后,不理解该选项的程序将退出。
环境变量或my.cnf文件中的东西?
对于它的价值,当我在配置文件的[client]
部分中放入no-beep选项(mysql客户端的有效选项,但不是mysqldump)时,我得到了
mysqldump: unknown option '--no-beep'
(如naitsirch's answer中所述,它应该从[client]
部分移动到[mysql]
部分,因此它不会尝试将其用于其他客户端程序,例如mysqldump。)
尽管从mysql服务的属性中指定的my.ini文件中的客户端部分删除了-no-beep otion,但问题仍然存在。 MYSQL56服务设置使用来自E:\ Program Data \ MySQL \ MySQL Server 5.6 \的my.in。这个ini文件在[client]部分下没有-no - beep选项。
那问题是什么?
在我的设置中,mysqldump.exe驻留在C:\ Program Files \ MySQL \ MySQL Server 5.6 \ bin。当它作为命令行选项运行时,mysql使用C:\ Program Files \ MySQL \ MySQL Server 5.6 \ my.ini。这个ini文件中包含no-beep选项。 mysqldump没有使用服务指定的my.ini,而是使用了一个目录。
删除C:\ Program Files \ MySQL \ MySQL Server 5.6 \ my.ini解决了这个问题。
删除no-beep选项对我有用,但我不得不更改windows目录中的my.ini文件!顺便说一下,我正在使用Windows 10。
与此相关的一个注意事项,您必须了解各种已安装的MySQL产品。以下方案最能说明问题。
因此,您可能会认为MySQL Workbench从您正在使用的MySQL版本中的my.ini
文件中绘制设置。这是一个安全的假设,因为在Workbench中设置管理配置的一部分需要指向特定于该安装的my.ini
。然而这是不正确的,因为我发现它锁定在位于C:\Program Files\MySQL\my.ini
的那个作为要使用的那个。因此,您必须编辑此文件以使Workbench正常运行。
替代解决方案是使用--no-defaults
选项
例如:mysqldump --no-defaults -u root -p [DB_NAME] > [FILE_NAME].sql
从my.ini
删除C:\ProgramData\MySQL\MySQL Server 5.6
解决了它。