首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL似乎要删除用户;但用户仍存在于mysql.users表中

MySQL似乎要删除用户;但用户仍存在于mysql.users表中
EN

Stack Overflow用户
提问于 2011-01-27 21:59:19
回答 4查看 12.5K关注 0票数 8

我刚刚在MacOSX10.6.6上安装了MySQL社区服务器(5.5.8)。

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

代码语言:javascript
复制
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> 

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

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

我对此进行了研究,有些人认为GRANT可能阻止了DROP USER命令,但是,用户没有GRANT权限:

代码语言:javascript
复制
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'

之后,我再次尝试删除该用户,但也没有删除该用户。

我已经检查了我的MySQl错误日志,没有任何异常。

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

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-02-28 16:09:45

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

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

票数 4
EN

Stack Overflow用户

发布于 2011-07-06 03:54:10

或者,只删除匿名文件,而不删除根文件:

从mysql.user中删除用户=‘’和主机=‘my-computer-hostname.local’;

在5.1.57为我工作。

票数 9
EN

Stack Overflow用户

发布于 2011-02-28 04:51:26

您仍然可以从用户表中删除记录:

mysql> DELETE FROM user WHERE host='my-computer-hostname.local';

Query OK, 2 rows affected (0.00 sec)

此方法在MySQL 4.1之前使用过...

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4817226

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档