错误地我从我的mysql.user表中删除了我的root用户.
delete from mysql.user where user='username';
Run Code Online (Sandbox Code Playgroud)
要创建相同的root用户,我试图触发查询,
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
Run Code Online (Sandbox Code Playgroud)
我得到错误
ERROR 1396 (HY000): Operation CREATE USER failed for 'username'@'localhost'
根据这个SO答案,我试过FLUSH PRIVILEGES;,但我仍然得到同样的错误.
什么出了什么问题?
我还必须从mysql.db表中删除相同的内容
delete from mysql.db where user='username';
Run Code Online (Sandbox Code Playgroud)
而已...
Pra*_*bhu 13
如果使用DROP USER命令删除用户,则完全删除用户.如果以后必须添加具有相同用户名的用户,则可以使用FLUSH PRIVILEGES命令从mysql内存中完全删除权限.
DROP USER username@hostname;
Run Code Online (Sandbox Code Playgroud)
您必须在创建同一用户之前restart mysql或FLUSH PRIVILEGES之前运行,因为存在特权问题.在基于linux的系统中重启mysql
sudo service mysql restart
Run Code Online (Sandbox Code Playgroud)
在Windows系统中重新启动
net stop mysql
net start mysql
Run Code Online (Sandbox Code Playgroud)
在mysql提示符中刷新权限
FLUSH PRIVILEGES;
Run Code Online (Sandbox Code Playgroud)
REVOKE如果您知道用户拥有哪些权限,您也可以使用命令
REVOKE privillege1, privillege2, ... FROM deleted_user@host
Run Code Online (Sandbox Code Playgroud)