处理并解决mysql8.0 caching-sha2-password问题,开启远程访问

原文:https://blog.csdn.net/u010026255/article/details/80062153 

  1. 启动mysql服务:service mysqld start
  2. ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; #修改加密规则 
  3. ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'; #更新一下用户的密码 
  4. FLUSH PRIVILEGES; #刷新权限 

如果安装目录下找不到my.ini文件 windows系统下处理如下,打开C盘 查看选项中,查看隐藏文件,如果不出意外在programeData下(C:ProgramDataMySQLMySQL Server 8.0)找到my.ini

关于这一点,原文参考地址为:https://blog.csdn.net/Myc_CSDN/article/details/80958249

加入这一项 default_authentication_plugin=mysql_native_password

然后在服务中重启MySQL80服务

  •  以centos7.6为例,yum命令安装的mysql8.0初始密码存放路径为/var/log/mysqld.log
 mysql 8.0以上 新版本账号密码策略修改和密码修改

     老版本的密码策略变量:

        validate_password_policy 这个参数用于控制validate_password的验证策略 0-->low  1-->MEDIUM  2-->strong。

  validate_password_length密码长度的最小值(这个值最小要是4)。

  validate_password_number_count 密码中数字的最小个数。

  validate_password_mixed_case_count大小写的最小个数。

  validate_password_special_char_count 特殊字符的最小个数。

  validate_password_dictionary_file 字典文件

    SET GLOBAL log_bin_trust_function_creators=1;开启函数功能

8.0后要注意密码策略变量变化

 

validate_password.check_user_name ON

 

 

validate_password.dictionary_file

 

 

validate_password.length

 

 

validate_password.mixed_case_count

 

 

validate_password.number_count

 

 

validate_password.policy

 

 

validate_password.special_char_count

 

 

  如:validate_password_policy 变为validate_password.policy.

  所以

  set global validate_password_policy=0;变为 set global validate_password.policy=0 ;

  密码最小长度(6):

  set global validate_password_length=6; 变为 set global validate_password.length=6

 

 修改root的密码:

 登录后

 use mysq;

 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码
mysql> CREATE USER 'root'@'%' IDENTIFIED BY 'yourpwd!';
Query OK, 0 rows affected (0.04 sec)

mysql> grant all privileges on *.* to 'root'@'%';
Query OK, 0 rows affected (0.03 sec)
另外,如果远程连接的时候报plugin caching_sha2_password could not be loaded这个错误,可以尝试修改密码加密插件:

 mysql> alter user 'root'@'%' identified with mysql_native_password by 'yourpwd';
grant all privileges on *.* to 'root'@'%' identified by 'yourpwd';
firewall-cmd --zone=public --add-port=3306/tcp --permanent
#命令含义
--zone #作用域 
--add-port=3306/tcp #添加端口,格式为:端口/通讯协议 
--permanent #永久生效
  • 重启防火墙
systemctl restart firewalld.service

 

原文地址:https://www.cnblogs.com/saintdingspage/p/10040345.html