我似乎无法重新创建一个我已经删除的简单用户,即使是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)

当前回答

一个简单的工作围绕这个问题。由于“delete”命令只是删除mysql数据库“user”表中的用户记录,我们可以将其重新添加,然后完全删除该用户。然后可以创建同名用户。

步骤1。在mysql数据库中查找用户表的记录格式

use mysql;
select * from user;

步骤2。根据步骤1中显示的列,使用用户名创建一个虚拟记录。将其插入到表中,例如,提醒将“用户名”替换为您的用户名。

Insert into user value ('%','username','N','N','N','N','N',
'N','N','N','N','N','N','N','N','N','N','N','N','N','N','N',
'N','N','N','N','N','N','N','N','N','','','','','0','0','0',
'0','mysql_native_password',
'*52C5E3AC6BC5E2E0BFF86978BF62A1481AC79D58','N',
'2016-12-10 23:59:12',null,'N');

注意:有时您可能会在插入时遇到问题,只需更改数据即可使其工作。

步骤3。删除该用户。

drop user username;

现在您可以创建具有相同名称的用户。

其他回答

步骤1)打开MySQL命令行客户端。

步骤2:select user, host from mysql.user;

步骤3)删除用户:drop user username@localhost;

步骤4)再次使用MySQL GUI创建用户。

步骤5)现在问题解决了。

我也遇到过同样的问题,经过几次搜索,我找到了一个适合我的解决方案。我希望它能帮助你。 由于您已经创建了用户,现在尝试在Mysql控制台中执行FLUSH PRIVILEGES。 这个问题已经出现在MySql bug中了。你也可以看看这个。现在,在刷新之后,您可以创建一个新用户。 遵循以下步骤:

Step-1: Open terminal Ctrl+Alt+T
Step-2: mysql -u root -p  , it will ask for your MySQL password.

现在你可以看到Mysql控制台了。

Step-3: CREATE USER 'username'@'host' IDENTIFIED by 'PASSWORD';

而不是用户名,你可以输入你想要的用户名。如果你在你的本地机器上运行Mysql,那么输入“localhost”而不是主机,否则输入你想访问的服务器名。

实例:创建用户smruti@localhost由“hello”标识;

现在创建了新用户。如果你想给所有的访问然后键入

授予*上的所有特权。* TO 'newuser'@'localhost';

现在您可以通过输入\q退出MySQL。现在再次登录

mysql -u newusername -p,然后按Enter。你可以看到一切。

希望这能有所帮助。

尝试删除mysql.db where user = 'jack'然后创建一个用户

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

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

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

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

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 ....