作者在使用mysql添加用户的时候,发现用户名给我写错了
强迫症的我,必须要改过来,但是发现删除用户的时候,命令是成功的
但是在此创建同名用户的时候,会报错,网上查了很多,说这是mysql的官方bug,不知道是作者水平不够没能理解到那个bug,还是真的解决了这个问题,下面和大家分享,欢迎大家一起讨论
删除了user的用户之后 无法再次创造相同的用户名
在mysql 数据库中有一张user表,可以查询到所有的用户和用户信息,删除里面的用户信息以及你赋予那个用户的什么权限就能完全的删除那个用户了
解决方法
注意这里多用户的权限进行了多次的删除之后,发现我创建的时候,这个用户的是% 允许远程连接的,所以最后一次删除成功了
刷新用户权限
FLUSH PRIVILEGES;
这个时候你再次创建同名的用户mysql 就不会报错了
补充:mysql 删除用户(两种实现方案)
drop
drop user XXX;删除已存在的用户,默认删除的是’XXX’@’%’这个用户,如果还有其他的用户如’XXX’@’localhost’等,不会一起被删除。如果要删除’XXX’@’localhost’,使用drop删除时需要加上host即drop user ‘XXX’@’localhost’。
delete
delete from user where user=’XXX’ and host=’localhost’;其中XXX为用户名,localhost为主机名。
区别
drop不仅会将user表中的数据删除,还会删除其他权限表的内容。而delete只删除user表中的内容,所以使用delete删除用户后需要执行FLUSH PRIVILEGES;刷新权限,否则下次使用create语句创建用户时会报错。
补充:mysql创建用户报错[Err] 1396 – Operation CREATE USER failed for ‘test’@’%’的解决方法
问题:
执行mysql创建用户语句CREATE USER test IDENTIFIED BY ‘test’; 报错, 错误信息为
[Err] 1396 – Operation CREATE USER failed for ‘test’@’%’
解决步骤:
1.创建过test用户。
2.查询后发现无此用户,则执行FLUSH PRIVILEGES;然后重新执行创建语句。
3.如果还是报错,则执行drop user ‘test’@’%’;然后重新执行创建语句。
4.创建成功。
可能原因:
1.用户已存在。
2.使用delete语句删除用户后没有刷新权限。
3.用户不存在,但是存在该用户的权限信息。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持NICE源码。如有错误或未考虑完全的地方,望不吝赐教。