mysql drop user 不生效_mysql drop用户没有真正的删除记录的问题

内容描述:在已经设置了主机名的主机上安装mysql5.5,成功之后,进入mysql,查看user,会有下面的表数据mysql> select user, host from mysql.user;+------+-----------+| user | host      |+------+-----------+| root | 127.0.0.1 || root | ::1       ||      | MAC       || root | MAC       ||      | localhost || root | localhost |+------+-----------+

这时需要drop除root@localhost 和 root@127.0.0.1之外的用户,但是会有下面的错误mysql> drop user ''@'MAC';Query OK, 0 rows affected (0.00 sec)mysql> drop user 'root'@'MAC';Query OK, 0 rows affected (0.00 sec)注:第二次执行出现这样的错误(注意大小写)mysql> DROP USERroot@'MAC';ERROR 1396 (HY000): Operation DROP USER failed for'root'@'mac'查看得:mysql> select user, host from mysql.user;+------+-----------+| user | host      |+------+-----------+| root | 127.0.0.1 || root | ::1       ||      | MAC       || root | MAC       ||      | localhost || root | localhost |+------+-----------+6 rows in set (0.00 sec)

可以看到并没有删除这两个用户,这时可以使用delete删除数据表中的记录。

问题的分析解决:

这个问题主要是出现在你的主机名中包含大写字母的时候,当你在安装mysql之前,主机名已经设置为包含大写的格式,安装完之后就会出现,(’’@主机名和root@主机名)这两个用户。

这样的问题在mysql5.0的时候并没有出现,mysql5.0中主机名可以保存为大写形式,但是在mysql5.5中却不能保存为大写的形式,即使你在grant中写的是大写,mysql5.5也会存储为小写的。实验如下:

(1)、查看数据库中的用户

4c8bfad49ffd34e28e7fe443b06464cf.png

(2)、新建用户

30ccf1fde9d945ce803b611a12602ca1.png

可以看到,并没有存储WEBGAME_SR_216,而是存储为webgame_sr_216

注:这个问题出现在如下组合中,还有其他的组合,还须发现

Reproduced on Linux RHEL 5.5 64bit + MySQL 5.5.9

Reproduced on Linux RHEL 5.4 64bit + MySQL 5.1.53

Reproduced on Linux Fedora 12 32bit + MySQL 5.5.15 (see the trace here, with hostname=FEDORA02):

这个问题是mysql的一个bug,需要了解更多,可以看下面的网站。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值