使用'name'@'%'向MySQL添加用户失败,错误1396


9

我只是尝试使用添加新用户到MySQL

CREATE USER 'name'@'%' IDENTIFIED BY '...'

但是,它失败并显示以下错误:

ERROR 1396 (HY000): Operation CREATE USER failed for 'name'@'%'

仅为本地主机添加用户可以正常工作:

CREATE USER 'name'@'localhost' IDENTIFIED BY '...'

我不知道可能是什么问题。我将不胜感激。

(我正在使用mysql Ver 14.14 Distrib 5.1.66。)


我遇到了类似的问题,在创建/删除用户时,我验证了所有授予表中的用户信息,找不到任何用户信息,我试图撤消所有访问权并删除了该用户,但一段时间后,该操作有效,但没有进行任何更改,我都在这里写了详细的答案rathishkumar.in/2018/10/…–
Rathish

Answers:


13

根据文档,如果您省略@hostname(即CREATE USER name),MySQL会将其解释为@%。您提供的错误消息表明系统中已经有一个用户'name'@'%':

mysql> CREATE USER 'name'@'%' IDENTIFIED BY 'test';
Query OK, 0 rows affected (0.04 sec)

mysql> CREATE USER 'name'@'%' IDENTIFIED BY 'test';
ERROR 1396 (HY000): Operation CREATE USER failed for 'name'@'%'
mysql> CREATE USER 'name' IDENTIFIED BY 'test';
ERROR 1396 (HY000): Operation CREATE USER failed for 'name'@'%'

如果删除该用户仍然收到消息,请尝试运行FLUSH PRIVILEGES。

另请参阅此SO问题以获取其他信息。


1

我在使用mysql:5.7 docker image时遇到同样的错误。主要错误是试图创建root默认存在的用户。更多信息:https : //github.com/docker-library/mysql/issues/129

正如上面的链接给出的解决方案是未设置MYSQL_USERMYSQL_PASSWORD环境变量在启动泊坞窗图像。


这对我很有帮助!我不知道为什么我无法在docker中连接到数据库,也从未怀疑这是原因。
dingo_d
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.