2017-05-07 53 views
-1

我需要在其上運行新的服務器自動檢查。其中一項檢查是檢測是否設置了用戶(或root)密碼。但..如何檢查用戶密碼是否在mysql中設置?

mysql> SELECT host, user, password FROM mysql.user; 
ERROR 1054 (42S22): Unknown column 'password' in 'field list' 

Server版本:5.7.18-0ubuntu0.17.04.1(Ubuntu的)

+0

你能與我們分享您的數據表嗎?我們不能鍛鍊沒有它 –

+0

列名,密碼不密碼 –

+1

嘗試'authentication_string'作爲列名,而不是關密碼...的MySQL 5.7及以上沒有一個名爲'password'在mysql.user表中的列。 –

回答

3

的MySQL版本5.7或更高可是沒有一個名爲密碼mysql.user表列。 MySQL版本5.7或更高版本使用authentication_string列代替。

所以你查詢應該是

SELECT host, user, authentication_string FROM mysql.user 
+0

最後缺少';'。所以,如果該字段爲空,則不需要密碼,對吧?或登錄被禁用? –

+0

@anatoly techtonik如果authentication_string是空密碼不需要 –

+0

(注:這只是一個很小的擴展@RaymondNijland的答案) 如果你正在使用的MySQL版本> = 5.7,想知道如果'root'訪問被保護通過密碼,比你可以使用這個: 'mysql的-Nse 「從mysql.user SELECT COUNT(*),其中用戶= '根' 和authentication_string爲空」' – andiba

相關問題