Security
MariaDb 的管理員密碼似乎不起作用
我剛剛安裝
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;