用户'root'@'localhost'的访问被拒绝(使用密码:是)- 没有权限?
P粉136356287
P粉136356287 2023-10-09 19:39:30
0
2
1158

我不断收到此错误。

我正在使用 mySQL Workbench,我发现 root 的架构权限为空。根本没有任何特权。

我在使用我的服务器的各个平台上遇到了问题,而且这是一个突然出现的问题。

root@127.0.0.1 显然有很多访问权限,但我是这样登录的,但它只是分配给本地主机 - 本地主机没有权限。

我做了一些事情,比如 FLUSH HOSTSFLUSH PRIVILEGES 等 但没有从该方法或互联网上取得成功。

如何才能恢复 root 访问权限?我觉得这很令人沮丧,因为当我环顾四周时,人们希望您“有权访问”,但我没有访问权限,所以我无法进入命令行或任何东西,并且 GRANT 自己做任何事情。

运行 SHOW GRANTS FOR root 这是我得到的回报:

错误代码:1141。没有为用户“root”定义此类授权 主机“%”


P粉136356287
P粉136356287

全部回复(2)
P粉343141633

如果您在 MySql 5.7.+ 中遇到同样的问题:

Access denied for user 'root'@'localhost'

这是因为MySql 5.7默认允许使用socket连接,这意味着你只需使用sudo mysql连接即可。如果你运行sql:

SELECT user,authentication_string,plugin,host FROM mysql.user;

然后你就会看到它:

+------------------+-------------------------------------------+-----------------------+-----------+
| user             | authentication_string                     | plugin                | host      |
+------------------+-------------------------------------------+-----------------------+-----------+
| root             |                                           | auth_socket           | localhost |
| mysql.session    | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys        | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *497C3D7B50479A812B89CD12EC3EDA6C0CB686F0 | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
4 rows in set (0.00 sec)

要允许使用 root 和密码进行连接,请使用命令更新表中的值:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Current-Root-Password';
FLUSH PRIVILEGES;

然后再次运行 select 命令,您将看到它已更改:

+------------------+-------------------------------------------+-----------------------+-----------+
| user             | authentication_string                     | plugin                | host      |
+------------------+-------------------------------------------+-----------------------+-----------+
| root             | *2F2377C1BC54BE827DC8A4EE051CBD57490FB8C6 | mysql_native_password | localhost |
| mysql.session    | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys        | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *497C3D7B50479A812B89CD12EC3EDA6C0CB686F0 | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
4 rows in set (0.00 sec)

就是这样。您可以在运行并完成 sudo mysql_secure_installation 命令后运行此过程。

对于 mariadb,请使用

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('manager');

设置密码。 更多信息请访问 https://mariadb.com/kb/en/set-password/

P粉807471604

使用重置root密码的说明 - 但我们不会重置 root 密码,而是将强制将一条记录插入 mysql.user 表

在初始化文件中,使用它来代替

INSERT INTO mysql.user (Host, User, Password) VALUES ('%', 'root', password('YOURPASSWORD'));
GRANT ALL ON *.* TO 'root'@'%' WITH GRANT OPTION;
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板