記一次MySQL遇到的奇怪問題

背景

新裝MySQL 5.7, Ubuntu1804。
數據庫 root 賬戶已經設置了密碼。
使用本地root賬戶可免密碼登錄,即使指定-p也免密碼;本地非root賬戶無法登錄。
在這裏插入圖片描述

Datagrip登錄報

The specified database user/password combination is rejected

排查過程

首先以爲是沒配置user.Host字段,改成%後外部仍然無法登錄。

百度了一圈,發現這篇文章,但我數據庫里根本沒有空用戶。

又百度了一會無果,開始自己摸索。

首先查看mysql.user表中所有的字段。

在這裏插入圖片描述

看了一圈,發現root賬戶中有個值怪怪的。

plugin -> auth_socket

因爲不是專業DBA,沒深入瞭解過這些,百度走起:

使用“plugin:auth_socket”更改MySQL 5.7中的用戶密碼

找到了這篇文章。

雖然翻譯的感覺像是谷歌機翻,但這不妨礙我們幹活。

簡單說,auth_socket是通過本地 .sock文件的方式來進行通信,也就是,只有能訪問那個文件的用戶才能登錄root。

這也解釋了爲什麼普通用戶無法訪問:因爲sock文件權限是mysql:mysql。

除了mysql組成員,只有root管理員可以訪問。

改成 mysql_native_password後,問題解決。

快速解決的方法

本來打算貼一下處理方法的,但在寫文章的時候,意外在網上發現了這個問題的解決方案,就不造輪子了~

以上~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章