解决错误1396(HY000):在MySql中为'user'@'localhost'操作DROP USER失败吗?

当您创建具有'%'的用户时,如果您使用localhost删除用户,则会发生此错误。

让我们用“%”创建一个用户,并将该用户删除为本地主机。语法如下

CREATE USER 'yourUserName'@'%' IDENTIFIED BY 'yourPassword';

让我们使用以上语法创建一个用户。创建用户的查询如下

mysql> CREATE USER 'Jack'@'%' IDENTIFIED BY '1234';

检查用户是否创建成功

mysql> select user,host from MySQL.user;

以下是输出

+------------------+-----------+
| user             | host      |
+------------------+-----------+
| Jack             | %         |
| Manish           | %         |
| User2            | %         |
| mysql.infoschema | %         |
| mysql.session    | %         |
| mysql.sys        | %         |
| root             | %         |
| Adam Smith       | localhost |
| User1            | localhost |
| am               | localhost |
+------------------+-----------+
10 rows in set (0.00 sec)

查看上面的示例输出,我们有一个名为“ Jack”的用户,主机为“%”。每当您尝试使用localhost删除用户时,都会出现如下错误

mysql> DROP USER 'Jack'@'localhost';
ERROR 1396 (HY000): Operation DROP USER failed for 'Jack'@'localhost'

让我们使用主机“%”删除上述用户。查询如下

mysql> DROP USER 'Jack'@'%';

检查用户是否已从MySQL.user表中删除。查询如下

mysql> select user,host from MySQL.user;

以下是显示成功删除用户Jack的输出

+------------------+-----------+
| user             | host      |
+------------------+-----------+
| Manish           | %         |
| User2            | %         |
| mysql.infoschema | %         |
| mysql.session    | %         |
| mysql.sys        | %         |
| root             | %         |
| Adam Smith       | localhost |
| User1            | localhost |
| am               | localhost |
+------------------+-----------+
9 rows in set (0.00 sec)