MySQL用户管理

权限查询

1、查看mysql所有用户及其权限

>select * from mysql.user\G

2、查看当前用户的权限

>show grants;

3、查看某个用户的权限

>show grants for 用户名@主机;

用户创建

1、使用create user命令创建

>create user  '用户名'@'主机' identified  by '密码';

2、直接向数据表mysql.user中插入一条用户记录

> insert into mysql.user set user='用户名',host='主机ip',password=password('密码')
# 注意使用这种方法一定要在插入记录之后执行flush privileges 刷新权限,而且在mysql5.7之后,mysql.user表中的password字段已经被authentication_string代替,所以需要将“password”改为“authentication_string”密码一定要使用password函数加密

用户删除

>drop user '用户名'@'主机';

用户授权

刚创建的用户是默认没有权限的,需要使用grant指令进行权限的授予。

# grant指令的完整格式
grant 权限列表 on 数据库名.数据库表名 to '用户名'@'主机' identified by ‘密码’
>grant all privileges on *.* to 'tom'@'localhost' identified by '123' with grant option;
可使用“*”来代表所有库或者表,“%”表示任何主机地址。可以使用grant重复给用户添加权限,进行权限叠加。with grant option这个选项表示该用户可以将自己拥有的权限授予给别人,注意授权后一定要刷新授权表。
> flush privileges

用户权限收回

revoke指令格式:
revoke 权限列表 on 数据库名.数据表名 from 用户名@主机;
>revoke select on test.user from tom@localhost;

注意:其实GRANT语句在执行的时候,如果权限表中不存在目标账号,则创建账号;如果已经存在,则执行权限的新增。
但是使用REVOKE收回用户权限的时候即使收回了一个用户的所有权限这个用户依然存在,也就是说REVOKE并不能删除用户.

用户重命名

rename user '旧用户名'@'旧主机' to '新用户名'@'新主机';
rename user 'tom'@'localhost' to 'jerry'@'localhost';

用户密码修改

1、使用set password命令

set password for '用户名'@'主机' = password('新密码');
> set password for 'root'@'localhost' = password('123456');

2、修改mysql.user表中的password(或authentication_string)字段

update mysql.user set password=password('123123') where user='root' and host='localhost';
注意:此方法一定要执行“flush privileges;”指令刷新权限,否则密码修改无法生效。Mysql5.7以后应将“password”改为“authentication_string”。

3、使用grant指令在授权时修改密码

grant select on 数据库名.数据表名 to 用户名@主机 identified by '新密码' with grant option;
> grant select on test.user to jerry@localhost identified by '1234' with grant option;

4、使用mysqladmin修改密码

①用户没有密码
# mysqladmin -u 用户名 password 新密码;
②用户已经有密码
# mysqladmin -u 用户名 -p password 新密码;

忘记mysql的登录密码

1、先停止正在运行的MySQL服务,在命令行进入mysql安装目录下的bin目录,在–skip-grant-tables参数下运行mysqld_safe文件,进入安全模式并跳过授权表。

# service mysqld stop
# mysqld_safe --skip-grant-tables &
# mysql -uroot -p 【回车】

进入mysql之后使用用户密码修改的第二种方式,进行密码修改

> use mysql

> update user set password=PASSWORD("123456")where user="root";

> flush privileges;

> quit

------做运维之前很矫情的小年轻-----

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值