alter user 'root'@'localhost' identified by '12345678';
如果设置密码时候出现提示
1
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
代表需要降低policy的等级后在执行
1
set global validate_password.policy=0;
开启MySQL远程连接
1 2 3 4 5
use mysql; #修改root账户权限 update user set host = '%'where user = 'root'; #刷新权限 flush privileges;
创建用户及授权
创建用户
1 2 3 4 5 6 7 8 9 10 11 12
create user 'test1'@'localhost' identified by '密码';
# Mysql8.0默认采用caching-sha2-password加密,目前好多客户端不支持,可改为mysql_native_password; create user 'test'@'%' identified with mysql_native_password BY '密码'; # 其中localhost指本地才可连接 # 可以将其换成%指任意ip都能连接 # 也可以指定ip连接
# 修改密码 Alter user 'test1'@'localhost' identified by '新密码';
flush privileges;
授权
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
grant all privileges on *.* to 'test1'@'localhost' with grant option; # with grant 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'@'localhost'; # 第二个*表示通配表,可指定新建用户只可操作的数据库下的某个表 # 如:grant all privileges on 数据库.指定表名 to 'test1'@'localhost';
# 刷新权限 flush privileges; # 查看用户授权信息 show grants for'test1'@'localhost'; # 撤销权限 revoke all privileges on *.* from 'test1'@'localhost'; # 用户有什么权限就撤什么权限