当我将所有权限授予刚刚创建的新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)。
答案 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;
我认为它会奏效。