Mysql新建用户备忘录
- 难得抽点时间码码字
数据库实验需求需要多人合作完成视图,因此就有了操作同一个数据库的需求
- 然而矛盾是我并不想因为某人的操作而导致整个库不能用(虽然只是个docker容器),因此就有了新建用户的需求,顺带授权。
通过资料的查阅总结一下,方便自己下次查阅
- 首先由于是Docker容器,所以先进入容器,期中mysql是容器名
docker exec -it mysql /bin/bash
- 接下来登陆,就跟普通shell登陆一样
- 登陆完毕之后需要新建用户,关于这个问题,有前人总结好了(传送门),我就直接拿来用了
1.创建用户:
# 指定ip:192.118.1.1的mjj用户登录
create user 'mjj'@'192.118.1.1' identified by '123';
# 指定ip:192.118.1.开头的mjj用户登录
create user 'mjj'@'192.118.1.%' identified by '123';
# 指定任何ip的mjj用户登录
create use 'mjj'@'%' identified by '123';
2.删除用户
drop user '用户名'@'IP地址';
3.修改用户
rename user '用户名'@'IP地址' to '新用户名'@'IP地址';
4.修改密码
set password for '用户名'@'IP地址'=Password('新密码');
- 有了这个咱照着格式改一下就是了,下为新建后的截图(books):
好吧,瞬间打脸,一晃又是两天
上次说到新建用户,实际上我们只用到了Create user 这一句,因为不涉及到别的语句也就没有深究下去。
-
但是光创建用户也没啥用,还得给他赋权,说白了给他管理那个数据库的的权力(CRUD+other)
-
由于时间有点久了,当初咋做的又给忘得差不多了,因此就又尝试了一下,这次建一个books2用户,其他不变
-
然后是赋权,我希望这个用户只对books拥有乱玩的权力
-
于是乎就用到了赋权的语句 grant XXX(power) on database.table to user@hostIp;如下所示:
-
刷新配置后,连接测试下,发现是1251
-
再次测试,就可以了
-
我们发现这里有两个库,一个就是我们赋权给他的books库,另一个infomation_schema这个库暂时没研究过是个啥,下次有机会看看,至少mysql这个库是没有了,这证明我们成功了。
总结
- 这一份资料主要是给我做个备份,就沿着思路写了,没做什么润色排版,如果遇到相同的问题欢迎留言。