解决 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)