msyql 8.0.x 的密码修改以及用户操作
对于刚刚安装的的时候,可以查看错误日志
/var/log/mysqld.log
# 通过 :
cat /var/log/mysqld.log| grep -i 'password'
# 过滤查看出密码在登录
注: 在第一次登录之后若遇到必须先更改密码之后才可以进行其他操作可以先使用 alter uer 'root'@'localhost' identified by 'New_Password';
此处的密码必须是8位以上的复杂密码。
之后在进行密码修改
密码修改操作:
先查看密码插件
mysql> show variables like 'validate_password%'; #此方式只是临时修改
+--------------------------------------+--------+
| Variable_name | Value |
+--------------------------------------+--------+
| validate_password.check_user_name | ON |
| validate_password.dictionary_file | |
| validate_password.length | 8 |
| validate_password.mixed_case_count | 1 |
| validate_password.number_count | 1 |
| validate_password.policy | MEDIUM |
| validate_password.special_char_count | 1 |
+--------------------------------------+--------+
7 rows in set (0.02 sec)
将上表中validate_password.policy改为LOW 和 validate_password.length= 改为你想要的任意长度
validate_password.policy :密码复杂组
validate_password.length : 密码长度
命令:
set global validate_password.length=6;
set global validate_password.policy=LOW;
# 修改之后对表进行刷新
flush privileges
# 之后在修改用户密码:
alter user root@'localhost' identified by '123456';
用户创建以及授权操作:
在8之后不可以直接授权用户,必须先创建用户在进行授权
创建用户:
create user '用户名'@'%' identified by '密码';
%:代表任何主机都可登录此用户
创建之后授权
grant all privileges on *.* to '用户'@'%';
对于已经存在的用户可以更新用户权限表:
update user set host='%' where user='root';
# 注意在操作结束之后要对表进行一次刷新
flush privileges
身份验证插件
对于在8之后默认使用的是caching_sha2_password的身份验证插件
对于有些应用在连接数据库时若出现:
The server requested authentication method unknown to the client
则需要修改一下身份验证的插件
编辑
vim /etc/my.cnf 有时可能是在 /etc/my.cnf.d/mysqld.server
在文件中找到 **[mysqld]**下的:
# default-authentication-plugin=mysql_native_password
去掉注释 #
之后重启服务
systemctl restart mysqld
注意:更改配置文件之后对于之前已经存在的用户并不生效,所以需要在进行修改。
更新当前用户密码规则配置
alter user 'root'@'%' identified with mysql_native_password by '';
# 注意在操作结束之后要对表进行一次刷新
flush privileges