我已经安装了 mariadb,并且作为 Linux 根用户,我可以运行 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