我不断收到此错误。
我正在使用 mySQL Workbench,我发现 root 的架构权限为空。根本没有任何特权。
我在使用我的服务器的各个平台上遇到了问题,而且这是一个突然出现的问题。
root@127.0.0.1 显然有很多访问权限,但我是这样登录的,但它只是分配给本地主机 - 本地主机没有权限。
我做了一些事情,比如 FLUSH HOSTS
、FLUSH PRIVILEGES
等
但没有从该方法或互联网上取得成功。
如何才能恢复 root 访问权限?我觉得这很令人沮丧,因为当我环顾四周时,人们希望您“有权访问”,但我没有访问权限,所以我无法进入命令行或任何东西,并且 GRANT
自己做任何事情。
运行 SHOW GRANTS FOR root
这是我得到的回报:
错误代码:1141。没有为用户“root”定义此类授权 主机“%”
P粉3431416332023-10-10 14:58:33
如果您在 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粉8074716042023-10-10 10:50:19
使用重置root密码的说明 - 但我们不会重置 root 密码,而是将强制将一条记录插入 mysql.user 表
在初始化文件中,使用它来代替
INSERT INTO mysql.user (Host, User, Password) VALUES ('%', 'root', password('YOURPASSWORD')); GRANT ALL ON *.* TO 'root'@'%' WITH GRANT OPTION;