- 创建用户
- 密码
- 查看密码规则
- 修改密码规则
- 修改密码
- 授权
- 为已有用户授权远程连接
- 授权
- 刷新系统权限表
- 删除用户
create user '用户名'@'%' identified by '密码';
有时你可能会遇到密码不符合要求的错误, 如MySQL 8.0+:
这时需要修改密码以符合规则,或修改密码规则。
show variables like 'validate_password%';
| global参数 | 表示 |
|---|---|
| validate_password.check_user_name | ON 表示可以将用户名作为密码,OFF时表示不可以 |
| validate_password.dictionary_file | 检查密码的字典文件的路径名 |
| validate_password.length | 默认为8,限制密码长度的最小字符数 |
| validate_password.mixed_case_count | 默认值为1,限制小写字符和大写字符个数 |
| validate_password.number_count | 默认值为1,限制数字的个数 |
| validate_password.policy | 默认值为1 密码强度等级:{LOW:0, MEDIUM:1, STRONG:2} 0/LOW:只检查长度; 1/MEDIUM:检查长度、数字、大小写、特殊字符; 2/STRONG:检查长度、数字、大小写、特殊字符字典文件 |
| validate_password_special_char_count | 默认值为1,限制特殊字符个数 |
根据上表描述,结合需要修改参数值。
如,我只想它检测密码长度,那么我只需要修改validate_password.policy=low或validate_password.policy=0
set global validate_password.policy=0;修改密码
update mysql.user set password=password('新密码') where User="用户名" and Host="用户地址";
flush privileges;
授权
为已有用户授权远程连接
用户地址:
- %表示任何ip都可访问;
- 具体的ip地址,表示只允许该ip地址进行远程连接;
- localhost,表示只允许本地连接。
alter user '用户名'@'用户地址' identified by '密码';
如果修改之后还不能访问,试着查看防火墙是否开放MySQL端口。
授权格式:
grant 权限1,权限2,…权限n on 数据库名.表名 to '用户名'@'用户地址';
权限1,权限2,…权限n代表:select,insert,update,delete,create,drop,index,alter,grant,references,reload,shutdown,process,file等14个权限。
当权限1,权限2,…权限n被all privileges或者all代替,表示赋予用户全部权限。
所有表:
grant all privileges on *.* to '用户名'@'用户地址';
特定数据库:
grant all privileges on 数据库名.* to '用户名'@'用户地址';刷新系统权限表
flush privileges;删除用户
DELETE FROM user WHERe User='用户名' and Host='用户地址'; # 刷新权限表 flush privileges; # 删除用户的数据库 drop database jeecnDB;



