MySql用户管理

70 阅读1分钟

1、创建新用户

CREATE USER '用户名' IDENTIFIED BY '密码';

比如:

CREATE USER 'test_user' IDENTIFIED BY '123456';

2、权限管理

  • 授权
grant all privileges on 数据库名.表名 to '用户名'@'IP地址';

也可以对数据库权限做细分授权,比如允许用户有insert权限

grant insert on 数据库名.表名 to '用户名'@'IP地址';
flush privileges;

有人说可以使用 grant all privileges on 数据库名.表名 to '用户名'@'主机名' identified by '密码' with grant option; 命令行赋权,本人在MySql8中实际操作会报错。

示例

-- 给用户test_user赋予对test_db数据库所有操作权限,可以在任意地址登录操作
grant all privileges on test_db.* to 'test_user'@'%';

-- 给用户test_user赋予对test_db数据库中t_user表的insert操作权限,可以在本地登录操作
grant insert on test_db.t_user to 'test_user'@'localhost';
  • 撤销权限
revoke all privileges from 数据库名 to '用户名'@'IP地址';
  • 说明

all privileges指除了grant之外的所有权限。
%表示任意地址
数据库.*表示数据库下所有的表

3、删除用户

drop user '用户名'@’主机名‘;

4、修改用户密码

update user set authentication_string = password(‘新密码’) where user = '用户名' and host = '主机名';

5、找回密码

  • 停止mysql服务

  • 打开命令行窗口在mysql安装目录bin下执行

mysqld --skip-grant-tables

如果是mysql5.0以上的,可以直接双击mysql安装目录bin下mysql.exe

  • 选择mysql数据库,并修改用户密码
update user set password = password('新的密码') where user = '要修改密码的用户名';
flush privileges;

exit;

password是mysql的密码加密方法。

  • 杀掉mysqld进程,重启mysql服务用新密码登录即可。