MariaDB安裝后無法登錄問題的解決

本文的初衷僅供自己做備忘筆記, 內(nèi)容大多從網(wǎng)上搜集和整理, 并非都是自己原創(chuàng).
參考的來源我會(huì)在后面注明, 對(duì)于可能遺漏的來源, 還請(qǐng)相關(guān)原創(chuàng)作者提醒, 非常感謝.

參考來源:
https://blog.csdn.net/yin138/article/details/80293533
https://mariadb.com/kb/en/library/authentication-plugin-unix-socket/
https://dev.mysql.com/doc/refman/5.6/en/pluggable-authentication.html

環(huán)境&版本

  • MairaDB 10.1.43
  • Ubuntu 18.04

給新機(jī)器Ubuntu安裝的Mariadb后無法登錄,表現(xiàn)為:

  • 非系統(tǒng)root賬戶下, 怎么也無法進(jìn)入mysql(也可以是mariadb, 一樣的), 即便密碼是對(duì)的, 允許localhost連接, 也提示Access denied for user 'root'@'localhost'
  • 系統(tǒng)root賬號(hào)下, 連密碼都不用, 直接就可以進(jìn)入mysql
  • 各種方法修改root用戶密碼,無效

這里再次感謝參考來源里csdn的這位博主, 解決了困擾我2天的問題.

經(jīng)過看日志和查手冊,發(fā)現(xiàn)原因如下:
1. ubuntu確實(shí)安裝沒有啟用root用戶,所以沒有root用戶密碼,而新安裝的mariadb使用的系統(tǒng)root的密碼(初始安裝后)
2. 通過原來的方法重置password無效(原因就是采用了unix_socket認(rèn)證)

解決方法

直接進(jìn)入root用戶下,就可以免密碼登錄!
對(duì)于ubuntu而言,需要啟用root用戶密碼,方法如下:

sudo passwd

輸入sudo的密碼后,再次輸入兩次root用戶密碼后即可。
然后切換至root賬號(hào):

xx>su - root
root>mysql -u root //直接回車就可以進(jìn)入,無需密碼,無論什么密碼也行,因?yàn)樗恍枰?mysql>

如果,你希望采用原來的mysql密碼方式,需要修改認(rèn)證插件,方法如下:

update mysql.user set plugin='mysql_native_password' where user='root';
update mysql.user set password=password("您的密碼") where user='root'; 
FLUSH PRIVILEGES;

這樣就可以在任何用戶下訪問mysql了。

為啥要升級(jí)成缺省為unix_socket呢?

對(duì)于CentOS,RedHat而言,使用root用戶時(shí),無需密碼登錄。
而且,也符合安全準(zhǔn)則,新版本的MySQL密碼會(huì)在日志中輸出,MariaDB以前保持空密碼,現(xiàn)在意味著,用root用戶,無需登錄。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容