当您创建具有'%'的用户时,如果您使用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)