我似乎无法重新创建一个我已经删除的简单用户,即使是MySQL的根用户。

我的案例:用户'jack'之前存在,但我从mysql中删除了它。用户才能重新创建它。我在那张桌子上没看到这东西的痕迹。如果我对其他一些随机用户名执行这个命令,比如'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)

当前回答

检查是否

“用户”@“%”

or

’user’@’localhost’

其他回答

是的,这个bug就在那里。然而,我找到了一个小小的变通办法。

假设用户在那里,那么删除用户 删除用户后,需要刷新mysql权限 现在创建用户。

这应该能解决问题。假设我们要创建admin @ localhost用户,下面的命令如下:

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

如果你在mysql上使用DELETE语句。如果试图删除一个用户,然后尝试用CREATE user重新建立用户,将会得到一个1396错误。通过运行DROP USER 'username'@'host'来摆脱这个错误;

DELETE 
  FROM mysql.user 
 WHERE user = 'jack';

(你会得到1396个错误,如果你试图重新创建杰克)

CREATE USER 'jack'@'localhost' IDENTIFIED BY PASSWORD '*Fi47ytFF3CD5B14E7EjkjkkC1D3F8086A5C0-krn';

(通过运行DROP USER来摆脱这种情况)

DROP USER 'jack'@'localhost';

(我想FLUSH特权不会造成伤害,但肯定会先放弃用户。)

MySql的错误解决:错误码1396

Whenever you had try to run query which create a User as Shown Below. MySql> CREATE USER 'springstudent'@'localhost' IDENTIFIED BY 'springstudent'; GRANT ALL PRIVILEGES ON * . * TO 'springstudent'@'localhost'; But when you try to run query which create user within all previleges, Due to bug it create gives previleges without showing user Because of this Problem we need to use this script for flush priviledges MySql> drop user 'springstudent'@'localhost'; flush privileges; create user admin@localhost identified by 'admins_password' After deleting the user, there is need to flush the mysql privileges Then Create User again

Gotchaaa ....Solved ....

似乎您需要为数据库创建用户,并为创建的用户授予特权

——>为数据库创建用户

CREATE  USER <'username'>@'%'IDENTIFIED BY <'password'>;

创建用户“root”@“%”,用户名为“root”;

——>授予特权

FLUSH PRIVILEGES;
GRANT ALL PRIVILEGES ON <db name>.* TO '<username>'@'%';

授予mydb上的所有特权。*到“root”@“%”;

这篇文章MySQL错误1045(28000):访问拒绝用户'账单'@'localhost'(使用密码:YES)是有用的。有时,会有匿名用户“@‘localhost’”或“@‘127.0.0.1’”。为了解决这个问题,

首先删除“创建用户”失败的用户。 创建新用户。 向新用户授予所需的特权。 冲洗的特权。