【发布时间】:2011-07-30 03:29:41
【问题描述】:
我似乎无法重新创建一个已删除的简单用户,即使是 MySQL 中的 root。
我的情况:用户 'jack' 以前存在,但我从 mysql.user 中删除了它以便重新创建它。我在那张桌子上看不到任何痕迹。如果我为其他一些随机用户名(例如“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)
【问题讨论】:
-
这很好地解释了原因:stackoverflow.com/a/20699933/2377343