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

Pet*_*etr 11 mysql mysql-5.1 users

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

CREATE USER 'name'@'%' IDENTIFIED BY '...'
Run Code Online (Sandbox Code Playgroud)

但是,它失败并出现以下错误:

ERROR 1396 (HY000): Operation CREATE USER failed for 'name'@'%'
Run Code Online (Sandbox Code Playgroud)

仅为 localhost 添加用户工作正常:

CREATE USER 'name'@'localhost' IDENTIFIED BY '...'
Run Code Online (Sandbox Code Playgroud)

我不知道可能是什么问题。我会很感激任何想法。

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

red*_*guy 14

根据文档,如果您省略@'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'@'%'
Run Code Online (Sandbox Code Playgroud)

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

另请参阅此 SO 问题以获取更多信息。