网上有的直接创建并赋权,像酱紫的:
grant all privileges *.* to '要创建的用户'@'localhost' identified by '自定义密码';
mysql8试了不行,要先创建用户再进行赋权,不能同时进行
登录mysql
mysql -u root -p
切换数据库
use mysql
创建用户
create user 'test1'@'%' identified by '密码';
flush privileges;刷新权限
其中localhost指本地才可连接
可以将其换成%指任意ip都能连接
也可以指定ip连接
修改密码
alter user 'test1'@'%' identified by '新密码';
flush privileges;
授权
grant all privileges on *.* to 'test1'@'localhost' with grant option;
with gran option表示该用户可给其它用户赋予权限,但不可能超过该用户已有的权限
比如a用户有select,insert权限,也可给其它用户赋权,但它不可能给其它用户赋delete权限,除了select,insert以外的都不能
这句话可加可不加,视情况而定。
all privileges 可换成select,update,insert,delete,drop,create等操作
如:grant select,insert,update,delete on *.* to 'test1'@'localhost';
第一个*表示通配数据库,可指定新建用户只可操作的数据库
如:
grant all privileges on [数据库].* to 'test1'@'%';
例子:
GRANT ALL PRIVILEGES ON `g-xxx`.* TO 'test1'@'%';
第二个*表示通配表,可指定新建用户只可操作的数据库下的某个表
如:grant all privileges on 数据库.指定表名 to 'test1'@'localhost';
查看用户授权信息
show grants for 'test1'@'localhost';
撤销权限
revoke all privileges on *.* from 'test1'@'localhost';
用户有什么权限就撤什么权限
删除用户
drop user 'test1'@'localhost';