MySQL“mysql没有为用户定义这样的授权”

时间:2016-05-22 02:40:39

标签: mysql

当我将所有权限授予刚刚创建的新root帐户时,就会发生此错误。

产生问题的步骤:

CREATE USER 'root'@'localhost';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
SHOW GRANTS for 'root'@'localhost';

在“show grants”之后我收到错误“mysql没有为主机'localhost'上的用户'root'定义这样的授权”。执行前三个命令后没有错误。新用户已成功创建。

如何解决这个问题?

更多信息: 我在MacOS笔记本电脑上运行MySQL 5.7(OSX 10.10.5)。

3 个答案:

答案 0 :(得分:2)

您发布的代码没有任何问题,但猜测尝试使用通配符%

SHOW GRANTS for 'root'@'%';

(OR)

作为替代方案,请使用您创建的用户'root'@'localhost'登录,然后使用SHOW GRANTS。见Documentation

答案 1 :(得分:0)

我认为mysql不允许您创建另一个root帐户。因此创建会导致错误。

CREATE USER 'root'@'localhost';

ERROR 1396 (HY000): Operation CREATE USER failed for 'root'@'localhost'

您应该检查用户表中的现有root帐户,并且您会发现通配符为'%',这意味着您不需要创建localhost root用户。

select * from user where user = 'root';

要求在root localhost上显示授权应该有效,并且对我有用。

show grants for 'root'@'localhost';

答案 2 :(得分:0)

<强>步骤1: sudo mysql -u root -p

<强>步骤-2: 从“用户名”@“localhost”中撤销所有特权,授予选项;

Ex.- 从'admin'@'localhost'中撤销所有特权,授权选项;

<强>步骤-3: FLUSH PRIVILEGES;

我认为它会奏效。