zoukankan      html  css  js  c++  java
  • JAVA后端连接MYSQL 8 报错:Public Key Retrieval is not allowed

    1. 报错页面

    当出现报错的时候,我反复检查了后端服务的配置,发现并没有问题,然后看日志发现:java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowed
    

    2. 报错原因及解决办法

    (1)报错原因
    mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password。
    换另一种方式来说,就是java里面的mysql客户端版本太低,高版本的客户端不会有这个问题。
    
    (2)解决办法
    网上说添加如下参数在连接后面 allowPublicKeyRetrieval=true,但是这种方式并不安全,可能会导致恶意的代理通过中间人攻击(MITM)获取到明文密码。
    
    最佳解决办法:
    ALTER USER 'root'@'%' IDENTIFIED BY 'qwe123' PASSWORD EXPIRE NEVER; #更改加密方式 
    ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'qwe123'; #更新用户密码 
    FLUSH PRIVILEGES; #刷新权限 
    
  • 相关阅读:
    asp之GetArray提取链接地址,以$Array$分隔的代码
    冒泡排序的优化
    Shell中, 退出整个脚本
    Shell中的算术运算(译)
    天黑了
    你猜
    2015-12-08
    Aspen
    Spring字符集过滤器CharacterEncodingFilter
    UILocalNotification ios本地推送
  • 原文地址:https://www.cnblogs.com/xiets/p/14852857.html
Copyright © 2011-2022 走看看