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

使用CentOS 6,以root身份login到MySQL,input命令:

 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; 

显示根在所有列中都有Y,所以应该拥有所有权限。

如果有人能帮我find为什么root不能授予权限,我将不胜感激,因为我不明白为什么它不会工作。

谢谢

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

每个不同的用户都可以对不同的数据库,表,行和命令有不同的访问权限。

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

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

 SELECT user,host,password FROM mysql.user;