在 MySQL 5.5 中创建超级用户不起作用:root@localhost 的权限被拒绝

在 MySQL 5.5 中创建超级用户不起作用:root@localhost 的权限被拒绝

使用 CentOS 6,以 身份登录 MySQL root,输入命令:

create user 'user123' identified by 'pass123';

运行正常。但是当我尝试为该用户提供super user privileges

grant all on *.* to 'user123' identified by 'pass123';

我收到错误:

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

然后

select * from mysql.user;

表明 root 在所有列中都有 Y,因此应该拥有所有权限。

如果有人能帮助我找出为什么 root 无法授予权限,我将非常感激,因为我不明白为什么它不起作用。

谢谢

答案1

MySQL 中的权限与“用户名”相关一个“主机”。主机可以是域名、IP 地址或“localhost”。其中任何一个都可以包含通配符%。如果您从错误的地方连接,即使使用正确的用户名和密码,您仍然会收到权限被拒绝的错误。

这些不同的用户中的每一个都可以对不同的数据库、表、行和命令拥有不同的访问权限。

还值得注意的是,“127.0.0.1”与“localhost”不同,因为mysql在命令行上使用客户端将使用套接字而不是 IP 进行连接。如果您想mysql在 MySQL 服务器上使用客户端时使用 IP 进行连接,您可以指定-h <IP address>

要查看所有不同的“用户”:

SELECT user,host,password FROM mysql.user;

答案2

最后不得不绕过授权表。参见此处:

https://stackoverflow.com/questions/10130296/mysql5-as-root-cant-create-database-or-do-anything-access-denied

如何做到这一点

相关内容