我似乎无法重新创建一个我已经删除的简单用户,即使是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)
我也遇到过同样的问题,经过几次搜索,我找到了一个适合我的解决方案。我希望它能帮助你。
由于您已经创建了用户,现在尝试在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上使用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特权不会造成伤害,但肯定会先放弃用户。)
我今天遇到了这个问题,我通过以下步骤解决了它:
1)手动在mysql.user中插入麻烦的用户提供的必填字段值
mysql> insert into user(Host, User, Password, ssl_type)
values ('localhost', 'jack', 'jack', 'ANY');
2)
mysql> select * from user where User = 'jack';
1 row in set (0.00 sec)
3)。
mysql> drop user jack;
Query OK, 0 rows affected (0.00 sec)
B. mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
C. mysql> create user 'jack' identified by 'jack';
Query OK, 0 rows affected (0.00 sec)
D. mysql> select Host, User, Password, ssl_type from user where User = 'jack';
+-----------+-----------+-------------------------------------------+----------+
| Host | User | Password | ssl_type |
+-----------+-----------+-------------------------------------------+----------+
| localhost | jack | jack | ANY |
| % | jack | *45BB7035F11303D8F09B2877A00D2510DCE4D758 | |
+-----------+-----------+-------------------------------------------+----------+
2 rows in set (0.00 sec)
4)。
mysql> delete from user
where User = 'nyse_user' and
Host = 'localhost' and
Password ='nyse';
Query OK, 1 row affected (0.00 sec)
B.
mysql> select Host, User, Password, ssl_type from user where User = 'jack';
+------+-----------+-------------------------------------------+----------+
| Host | User | Password | ssl_type |
+------+-----------+-------------------------------------------+----------+
| % | jack | *45BB7035F11303D8F09B2877A00D2510DCE4D758 | |
+------+-----------+-------------------------------------------+----------+
1 row in set (0.00 sec)
希望这能有所帮助。
我也遇到过同样的问题,经过几次搜索,我找到了一个适合我的解决方案。我希望它能帮助你。
由于您已经创建了用户,现在尝试在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。你可以看到一切。
希望这能有所帮助。