mysql - 错误 1396 (HY000) : Operation CREATE USER failed for 'jack' @'localhost'

标签 mysql mysql-management

我似乎无法重新创建已删除的简单用户,即使是 MySQL 中的 root 用户。

我的情况:用户“jack”以前存在,但我从 mysql.user 中删除了它以便重新创建它。我在那张 table 上没有看到任何痕迹。如果我为其他一些随机用户名(例如“jimmy”)执行此命令,它可以正常工作(就像最初对“jack”所做的那样)。

我做了什么来损坏用户“jack”?如何撤消该损坏,以便将“jack”重新创建为此次 MySQL 安装的有效用户?

请参阅下面的示例。 (当然,最初,“jack”的创建和他的删除之间有很长的时间。)

mysql> CREATE USER 'jack'@'localhost' IDENTIFIED BY 'test123';
Query OK, 0 rows affected (0.00 sec)

mysql> select user,host from user;
+------------------+-----------------+
| user             | host            |
+------------------+-----------------+
| root             | 127.0.0.1       |
| debian-sys-maint | localhost       |
| jack             | localhost       |
| root             | localhost       |
| root             | russ-elite-book |
+------------------+-----------------+
5 rows in set (0.00 sec)

mysql> delete from user where user = 'jack';
Query OK, 1 row affected (0.00 sec)

mysql> select user,host from user;
+------------------+-----------------+
| user             | host            |
+------------------+-----------------+
| root             | 127.0.0.1       |
| debian-sys-maint | localhost       |
| root             | localhost       |
| root             | russ-elite-book |
+------------------+-----------------+
4 rows in set (0.00 sec)

mysql> CREATE USER 'jack'@'localhost' IDENTIFIED BY 'test123';
ERROR 1396 (HY000): Operation CREATE USER failed for 'jack'@'localhost'
mysql> CREATE USER 'jimmy'@'localhost' IDENTIFIED BY 'test123';
Query OK, 0 rows affected (0.00 sec)

mysql> select user,host from user;
+------------------+-----------------+
| user             | host            |
+------------------+-----------------+
| root             | 127.0.0.1       |
| debian-sys-maint | localhost       |
| jimmy            | localhost       |
| root             | localhost       |
| root             | russ-elite-book |
+------------------+-----------------+
5 rows in set (0.00 sec)

最佳答案

是的,这个错误确实存在。不过,我找到了一个小解决方法。

  • 假设用户存在,因此删除该用户
  • 删除用户后,需要刷新mysql权限
  • 现在创建用户。

应该可以解决这个问题。假设我们要创建用户 admin @ localhost,这些命令是:

drop user admin@localhost;
flush privileges;
create user admin@localhost identified by 'admins_password'

关于mysql - 错误 1396 (HY000) : Operation CREATE USER failed for 'jack' @'localhost' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43014596/

相关文章:

mysql - SQL 引用失败的查询

MYSQL之间不包括最大日期

php - 我需要为文本中的每个关键字进行一个 sql 查询吗?

php - 需要帮助通过 PHP 在 MySQL 中设置 future 日期

mysql - 将集合保留在数据库中并对记录进行选择查询

mysql 访问被拒绝创建数据库

ruby-on-rails - 跨 AWS 扩展应用程序的单点故障

mysql - 错误 1396 (HY000) : Operation CREATE USER failed for 'jack' @'localhost'

mysql - 在 MySQL (3.23.58) 中删除表名中带有特殊字符的表