gpt4 book ai didi

mysqladmin ping错误代码

转载 作者:IT王子 更新时间:2023-10-29 01:01:08 24 4
gpt4 key购买 nike

即使密码失败,Mysqladmin ping 也会返回 0,而 mysqlclient 则不会。这是 Mysqladmin 开发人员的错误吗?我不明白为什么 Mysqladmin 要求输入登录名/密码,因为即使您没有指定登录名,它也会返回 0。

如果我在没有任何登录名/密码的情况下尝试 Mysqladmin ping:

# mysqladmin ping ; echo $?mysqladmin: connect to server at 'localhost' failederror: 'Access denied for user 'root'@'localhost' (using password: NO)'0

Mysqladmin 给我一个登录错误,并告诉我服务器当前正在运行(0 值),如果它仍然给我答案,为什么还要要求登录?


当我做这样的事情时:

#mysqladmin -uroot -pWrongPassword ping ; echo $?mysqladmin: connect to server at 'localhost' failederror: 'Access denied for user 'root'@'localhost' (using password: YES)'0

这会返回 0 而不是 1。


现在,如果我停止 mysql 服务器并重试:

# mysqladmin -uroot -pWrongPassword ping ; echo $?mysqladmin: connect to server at 'localhost' failederror: 'Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)'Check that mysqld is running and that the socket: '/var/run/mysqld/mysqld.sock' exists!1

它给了我正确的值,因为服务器已停止,我们不关心错误的密码。


最后我用 Mysqlclient 和一个错误的密码做了同样的测试:

# mysql -uroot -pWrongPassword mysql -sN -e "select * from user" ; echo $?ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)1

我知道此命令的主要目的是测试 mysql 服务器的可用性,但如果您仍然提供 0 值,则要求输入登录名/密码没有任何意义。

你认为这是一个错误吗?

最佳答案

这不是错误。此行为是设计使然。

ping
Check whether the server is available. The return status from mysqladmin is 0 if the server is running, 1 if it is not. This is 0 even in case of an error such as Access denied, because this means that the server is running but refused the connection, which is different from the server not running.

关于mysqladmin ping错误代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18522847/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com