• DataGrip 无法连接mysql 错误[08001]


    想要解决方案的直接拉到最后

    环境

    • DBMS: MySQL (ver. 8.0.30-0ubuntu0.22.04.1)
    • Driver: MySQL Connector/J (ver. mysql-connector-java-8.0.25 (Revision: 08be9e9b4cba6aa115f9b27b215887af40b159e0), JDBC4.2)

    连接失败

    [08S01]
    Communications link failure
    The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
    java.io.EOFException: SSL peer shut down incorrectly.

    问题排查

    不知什么原因DataGrip突然连不上某个数据库(下面称之为A库)
    其他数据库经测试是正常的(排除掉软件和本机网络的问题)
    然后用Navicat连接A库又是正常的(排除掉mysql服务的问题)
    最后就只好在DataGrip本身找问题了

    1. ssl问题

    经过google大部分人都把问题指向了mysql版本迭代引入的安全特性导致的
    解决办法就是在数据库连接url后面加上&useSSL=false即可
    新版本的mysql服务默认开启了SSL

    For 8.0.12 and earlier: Use SSL when communicating with the server (true/false), default is ‘true’ when connecting to MySQL 5.5.45+, 5.6.26+ or 5.7.6+, otherwise default is ‘false’.[CR] For 8.0.13 and later: Default is ‘true’. DEPRECATED. See sslMode property description for details.

    2. 未能解决

    指定不走SSL依旧无法连接mysql

    报了个新的错误
    [08001] Public Key Retrieval is not allowed
    com.mysql.cj.exceptions.UnableToConnectException: Public Key Retrieval is not allowed.

    此时我们需要把alowPublicKeyRetrieval打开

    3. 解决方案
    设置userSSL

    useSSL=false

    设置alowPublicKeyRetrieval

    alowPublicKeyRetrieval

  • 相关阅读:
    知识图谱从入门到应用——知识图谱的应用
    python表白弹框
    spring framework 5.2文档 - 控制反转 IoC 容器
    ES & Kibana windows 安装
    Android学习笔记 53. 重新认识Android studio开发工具之创建项目
    zookeeper入门篇之分布式锁
    Java 类加载机制与双亲委派
    MIPS64乘法器模拟实验
    Git GitHub GitLab
    软件合同保密协议
  • 原文地址:https://blog.csdn.net/qq_34208844/article/details/127459972