2017-04-16 73 views
4

我已經在Ubuntu LTS 16.04上安裝了MariaDB。然後我跑MariaDB警告:'root @ localhost'有兩個...密碼將被忽略

/usr/bin/mysql_secure_installation 

並設置一個root密碼。通過mysql -u root -p訪問數據庫工作正常。但檢查與service mysql status狀態打開日誌文件有這樣的警告:

[Warning] 'user' entry '[email protected]' has both a password and an authentication plugin specified. The password will be ignored. 

的問題是:

  1. 這是困擾或完全正常嗎?
  2. 如果這是一個擔心,我該如何解決它?

回答

9

這是正常的,如果說「通過mysql -u root -p訪問DB工作正常」你的意思是,你正在運行它雖然是一個系統根目錄(或下sudo)。你應該無法像普通用戶那樣做。

默認情況下,Ubuntu生成的軟件包對本地根具有unix_socket身份驗證。要檢查,運行

SELECT user, host, plugin FROM mysql.user; 

您應該看到unix_socketplugin[email protected]

如果你想使用的密碼驗證,而不是運行

UPDATE mysql.user SET plugin = '' WHERE plugin = 'unix_socket'; 
FLUSH PRIVILEGES; 
+0

非常感謝您詳細的答覆(一個抱歉沒有能夠給予好評您的答案)!這擺脫了警告。但是,在服務器重新引導後重新啓動MariaDB後,狀態日誌中會出現'ERROR 1045(28000):拒絕用戶'root'@'localhost'(使用密碼:NO)「的錯誤。另外,通過'服務mysql重新啓動'重新啓動MariaDB不再工作了!!? – FlorianL

+0

Ubuntu必須相應地更改其他腳本。啓動和監視服務的舊方法是使用一個特殊的'debian-sys-maint'用戶,它擁有自己的'debian.conf',其中包含一個生成的密碼。據我的理解,開始使用'unix_socket'的原因之一是爲了擺脫這個相當尷尬的遺產。如果你想繼續使用這些腳本,我通常的建議是保持Ubuntu想要的'root @ localhost'(使用'unix_socket'),另外創建另一個超級用戶,你可以使用密碼認證來設置你的用戶目的。 – elenst

相關問題