2012-12-05 238 views
0

是否可以使用shell脚本验证给定的MySQL用户名和密码而不尝试登录到MySQL服务?如果是这样,怎么样?我还没有找到任何有用的解决方案。验证MySQL用户名和密码

回答

2

试试这个。有用。

mysql -u$USER_NAME -p$PASSWORD -eexit 

如果提供正确的登录凭据,则退出代码将是0,否则,这将是1

例子:

[email protected]:~$ mysql -uroot -pabc123 -eexit 

ERROR 1045(28000):拒绝访问用户'root'@'localhost'(使用 密码:是)

[email protected]:~$ echo $? 
1 
--------------------------------------------------- 

[email protected]:~$ mysql -uroot -pabc12 -eexit 

[email protected]:~$ echo $? 
0 

说明:

-e, --execute=name Execute command and quit. 
3

不,我不相信这是可能的。

您需要尝试连接到MySQL以验证身份验证的详细信息是否正确。即使直接查询MySQL用户表(存储凭据的位置)也需要连接到MySQL服务器。

也许你可以分享为什么你需要这样做?

+0

'也许你可以分享你为什么会需要做this'看到:http://www.perlmonks.org/index.pl?node_id=542341 –

+0

我同意你的看法。我的任务是在shell脚本中自动执行MySQL登录,并且需要验证给定的用户密码。有没有其他方法可以建议?我只想检查用户密码是否有效。在这个时候,我没有任何疑问可以运行 – AlwaysALearner

+0

这听起来像你可以连接到MySQL,但你只是没有查询来运行。你有没有尝试只用指定的用户名和密码在脚本中调用MySQL并评估结果?例如“mysql -Uusername -Ppassword”。它应该让你知道提供的证书是否不好。 – Dan