MySQL似乎是DROP USER; 但是用户仍然存在于mysql.users表中

Pro*_*ght 7 mysql database macos mysql5 osx-snow-leopard

我刚刚在Mac OS X 10.6.6上安装了MySQL社区服务器(5.5.8).

我一直遵循安全安装​​的规则(为root分配密码,删除匿名帐户等),但是,有一个用户帐户,我不能DROP:

mysql> select host, user from mysql.user;
+--------------------------------+------+
| host                           | user |
+--------------------------------+------+
| 127.0.0.1                      | root |
| ::1                            | root |
| My-Computer-Hostname.local     |      |
| My-Computer-Hostname.local     | root |
| localhost                      | root |
| localhost                      | web  |
+--------------------------------+------+
6 rows in set (0.00 sec)

mysql> drop user ''@'My-Computer-Hostname.local';
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> select host, user from mysql.user;
+--------------------------------+------+
| host                           | user |
+--------------------------------+------+
| 127.0.0.1                      | root |
| ::1                            | root |
| My-Computer-Hostname.local     |      |
| My-Computer-Hostname.local     | root |
| localhost                      | root |
| localhost                      | web  |
+--------------------------------+------+
6 rows in set (0.00 sec)

mysql> 
Run Code Online (Sandbox Code Playgroud)

如您所见,MySQL在执行DROP USER命令时没有报告任何错误,但实际上并没有删除用户!

我也试过从phpMyAdmin(3.3.9)中删除用户并产生相同的结果(即报告成功,没有错误消息,用户未删除).

我研究了这个,有些人建议GRANT可能会阻止DROP USER命令,但是,用户没有GRANT权限:

mysql> SHOW GRANTS FOR ''@'My-Computer-Hostname.local';
+-----------------------------------------------------------+
| Grants for @my-computer-hostname.local                |
+-----------------------------------------------------------+
| GRANT USAGE ON *.* TO ''@'my-computer-hostname.local' |
+-----------------------------------------------------------+
1 row in set (0.00 sec)

mysql> REVOKE GRANT OPTION ON *.* FROM ''@'My-Computer-Hostname.local';
ERROR 1141 (42000): There is no such grant defined for user '' on host 'my-computer-hostname.local'
Run Code Online (Sandbox Code Playgroud)

之后我尝试再次删除用户,但它也没有删除/删除用户.

我已经检查了我的MySQl错误日志,那里没有什么异常.

MySQL手册表明可以删除所有匿名帐户,为什么我不能删除这个?

小智 9

或者,只删除匿名的而不是根目录:

mysql> DELETE FROM mysql.user WHERE User =''AND Host ='my-computer-hostname.local';

在5.1.57为我工作.


Wim*_*uwe 4

由于您的大写字符,这是一个已知的错误:http://bugs.mysql.com/bug.php?id =62255

使用用户 douger 的建议作为解决方法