Mysql中Drop删除用户的名字_mysql5.5 使用drop删除用户

在说这个问题之前我们先讨论下关于在mysql中删除用户的方法和问题:

其实在以前我删除mysql中的账号的时候用delete,一直没注意其实用这个命令删除账号会有一个问题

就是使用delete删除账号后,只会清除user表的,在其它表中的信息还是存在,比如:db表,这个表是规定哪个用户可以访问哪个数据库

这样使用delete删除后,在创建一个同名的最小权限的用户的时候,那么他会重用以前的权限,造成权限方面的问题。

这里我们拿test库来做下实验:

grant all on test.* to dbmanager@'127.0.0.1' identified by '123456';

建立dbmanager用户让它对test库有所有权限。

查看user表和db表:

64d8637cc02c9138e1536c6831dd23db.png

addf5321a6a3ce43dff102121d45c041.png

然后我们使用delete命令删除dbmanager账号:

delete from user where user ='dbmanager' and host='127.0.0.1';

再查看user表和db表:

ade56cf96b5cf25fd72b034bf6a2e6c3.png

ff793f33880a315cae88e7fb815801fc.png

这时user表里面没有了dbmanager账号,但是db表里面还是有这个账号的并且它的权限依然存在,这时我们创建一个只有select权限的dbmanager账号。

grant select on test.* to dbmanager@'127.0.0.1' identified by '123456';

3dfccb72933fd4f353be7d9bd065cade.png

dbmanager账号的权限和以前的权限是一样的,所以使用delete删除账号的时候会引起权限方面的问题,知道这个问题后我以后删除账号基本上都是使用drop命令

说完上面的问题后,来说下用drop命令删除账号时遇到的问题:

mysql5.5安装完毕后要删除里面默认的账号并设置密码,但在使用drop删除的过程中遇到报错

93fbe57d45f240ce46d58099897ea164.png

一直不知道是什么问题,直到看到了这个帖子:http://zhuatlantis.blog.51cto.com/6106101/1343168

我们先用delete来删除。

这里说的意思是主机名里面如果有大写字母的时候,就会有这个问题。好像是mysql5.5的一个bug

在安装完mysql后会出现:

| VM000000809 | root | 和 | VM000000809 | | 这两个账户

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

bug地址:https://bugs.mysql.com/bug.php?id=62255

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值