使用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;