2017-04-12 80 views
3

我正在嘗試在Ubuntu(16.04.02)上安裝MariaDB(10.0.29)。在我安裝並啓動了該過程(sudo service mysql start)之後,即使我最初將密碼設置爲空白,我也無法登錄爲rootMariaDB - 無法以root身份登錄

mysql -u root將拒絕我訪問。我通過sudo mysql登錄並檢查了用戶表,即。 select user, password, authentication_string from mysql.user和預期:

+---------+----------+-----------------------+ 
| User | password | authentication_string | 
+---------+----------+-----------------------+ 
| root |   |      | 
+---------+----------+-----------------------+ 

我還創建了一個新的用戶,即。 create user 'test'@'localhost' identified by '';,當我嘗試做mysql -u test(空密碼),它工作正常,並記錄我

用戶表看起來像這樣:

+---------+----------+-----------------------+ 
| User | password | authentication_string | 
+---------+----------+-----------------------+ 
| root |   |      | 
| test |   |      | 
+---------+----------+-----------------------+ 

那麼,誰能告訴我爲什麼我不能登錄作爲root與空密碼,但我可以登錄爲test

+0

空密碼和無密碼可能會被區別對待。 – tadman

+0

我有類似的經歷。首先,在安裝時我沒有要求設置root密碼。我試圖重置root密碼,但仍然無法訪問。並重新安裝,並陷入相同的情況。還有Ubuntu 16.04 64bit。之後安裝mysql –

回答

6

與本機MariaDB軟件包(由MariaDB本身提供的軟件包)不同,Ubuntu默認生成的軟件包對本地根目錄具有unix_socket認證。要檢查,運行

SELECT user, host, plugin FROM mysql.user; 

如果在plugin列中看到unix_socket,這就是原因。

要返回到平時的密碼驗證,運行

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

(選擇WHERE條款,符合你的目的,一個上面只是一個例子)

0

我這個掙扎了一段時間。我的Ubuntu默認帶有MariaDB(10.0.31)。重新安裝幾次後,將插件更改爲各種建議 - 我仍然無法正確登錄到MySQL。

最後,我安裝了回購的最新MariaDB的(10.2.12): https://downloads.mariadb.org/mariadb/repositories/

我能夠立即正常登錄。

相關問題