解决 MySQL 中的错误 1396 (HY000):对“用户”'@'localhost' 执行操作 DROP USER 失败?


当您以 localhost 的身份删除用户而使用“%”创建用户时,会发生此错误。

让我们使用“%”创建用户,并以 localhost 的身份删除用户。语法如下

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

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

mysql> CREATE USER 'Jack'@'%' IDENTIFIED BY '1234';
Query OK, 0 rows affected (0.26 sec)

检查用户是否已成功创建

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'@'%';
Query OK, 0 rows affected (0.19 sec)

检查用户是否已从 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)

更新日期: 2019 年 7 月 30 日

3K+ 浏览次数

开启您的职业生涯

完成课程后获得认证

开始
广告