解决 ERROR 1396 (HY000): MySql 中对 'user'@'localhost' 的 DROP USER 操作失败?

mysqlmysqli database

当您使用 ‘%’ 创建用户时,删除使用 localhost 的用户时会发生此错误。

让我们使用 ‘%’ 创建一个用户,并将该用户作为 localhost 删除。语法如下

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

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

mysql>创建用户 '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)

相关文章