2012-12-05 297 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