我已經安裝了 mariadb,當作為 Linux root 使用者時,我可以執行 mysql 命令來存取資料庫。但是當我嘗試以普通 Linux 用戶身份登入並運行時mysql -u root -p
,出現錯誤:
ERROR 1698 (28000): Access denied for user 'root'@'localhost'.
我嘗試了多種方法,例如重置mysql root用戶密碼,但沒有用。
任何幫助都會很棒。
答案1
我遇到了同樣的問題,它是由“mysql.user”表中的“plugin”值引起的。
您是否嘗試過這個答案:https://askubuntu.com/a/636579/299538
答案2
在 MariaDB 中,您無法使用普通使用者登錄,您必須 root 存取權限或使用sudo
.另一個解決方案是新增另一個具有完全權限的 root 使用者。
使用 sudo 連接到資料庫:
sudo mysql -u root
檢查您在目前資料庫中的帳戶:
mysql> SELECT User,Host FROM mysql.user;
+------------------+-----------+
| User | Host |
+------------------+-----------+
| root | localhost |
重新建立使用者root
(如果需要,請使用密碼):
mysql> CREATE USER 'root'@'%' IDENTIFIED BY '';
給予許可:
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
沖洗:
mysql> FLUSH PRIVILEGES;
顯示資料庫使用情況:
SELECT User,Host FROM mysql.user;
+------+-----------+
| User | Host |
+------+-----------+
| root | % |
| root | localhost |
+------+-----------+
退出並以一般用戶連線:
mysql -u root