Security

MariaDb 的管理員密碼似乎不起作用

  • November 1, 2019

我剛剛安裝MariaDb在一個新的 Ubuntu Gnome 上,然後執行mysql_secure_installation我設置了一個不錯的管理員密碼,刪除了匿名使用者等。

之後我意識到有關管理員密碼的一些奇怪行為:

  • 如果我嘗試使用命令從我的普通使用者帳戶登錄,mysql -u root -p我總是會收到一個錯誤:ERROR 1698 (28000): Access denied for user 'root'@'localhost'

我很確定我輸入了我之前使用mysql_secure_installation設置的正確密碼……

  • 當我使用 root 從 root 執行命令時sudo mysql -u root -p,無論我實際輸入哪個密碼,我總是可以訪問數據庫…

這是正常行為,我做錯了什麼還是我搞砸了安裝?

這種行為聽起來與為 root 使用者啟用套接字身份驗證外掛是一致的,其中 MariaDB 信任通過套接字接收的作業系統憑據,而不依賴於密碼。通過使用或以 root 身份登錄,您可以以 root 身份連接到數據庫伺服器,因為您在作業系統上是 root,但其他作業系統使用者不能。sudo

您可以使用以下方法刪除該選項:

$ sudo mysql -u root

mysql> use mysql;
mysql> update user set plugin='' where User='root';
mysql> flush privileges;

然後你會得到預期的行為,任何擁有 MariaDB root 密碼的使用者都應該能夠以 root 身份登錄。

另一種方法是設置另一個使用者,而不是 root,該使用者也具有完全管理員權限,並將其而不是 root 用於管理目的:

$ sudo mysql -u root
mysql> CREATE USER 'finley'@'localhost' IDENTIFIED BY 'some_pass';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'finley'@'localhost'
->     WITH GRANT OPTION;

引用自:https://serverfault.com/questions/795290