创建用户
create user 'root'@'localhost' identified with mysql_native_password BY 'root@123';
# Mysql8.0默认采用caching-sha2-password加密,目前好多客户端不支持,可改为mysql_native_password;
# 其中localhost指本地才可连接
# 可以将其换成%指任意ip都能连接
# 也可以指定ip连接
create user 'root'@'localhost' identified by 'root@123';
修改密码
alter user 'root'@'localhost' identified with mysql_native_password by 'root@123';
alter user 'root'@'localhost' identified by 'root@123';
flush privileges;
修改远程访问
use mysql;
update user set Host='%' where User='root';
update user set Host='localhost' where User='root';
授权
grant all privileges on *.* to 'root'@'localhost' with grant option;
grant all privileges on *.* to 'root'@'localhost';
# with gran option表示该用户可给其它用户赋予权限,但不可能超过该用户已有的权限
# 比如a用户有select,insert权限,也可给其它用户赋权,但它不可能给其它用户赋delete权限,除了select,insert以外的都不能
# 这句话可加可不加,视情况而定。
# all privileges 可换成select,update,insert,delete,drop,create等操作 如:grant select,insert,update,delete on . to 'root'@'localhost';
# 第一个*表示通配数据库,可指定新建用户只可操作的数据库
# 如:grant all privileges on 数据库.* to 'root'@'localhost';
# 第二个*表示通配表,可指定新建用户只可操作的数据库下的某个表
# 如:grant all privileges on 数据库.指定表名 to 'root'@'localhost';
刷新权限
flush privileges;
查看用户授权信息
show grants for 'root'@'localhost;
撤销权限
revoke all privileges on *.* from 'root'@'localhost';
用户有什么权限就撤什么权限
删除用户
drop user 'root'@'localhost';
评论区