• IDEA连接MySQL失败-[08S01] Communications link failure


    IDEA连接MySQL失败-[08S01] Communications link failure

    一、问题现状描述

    使用IDEA启动maven项目,报错连接MySQL数据库失败,尝试用IDEA的database插件,连接本地MySQL库(Windows10本机搭建)

    image-20211027234434709

    报错结果如下:

    [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: Can not read response from server. Expected to read 4 bytes, read 0 bytes before connection was unexpectedly lost.

    image-20211027233621368

    使用Navicat等工具可以连接成功

    image-20211027235044997

    1. 使用命令窗口可以连接成功

    2. 服务端已设置用户可以远程访问

    image-20211027235507745

    二、问题排查

    MySQL 5.7除了配置服务端配置,还要配置my.cnf文件。

    1)/etc//my.conf

    2)E:PATSToolsmysql-5.7.34-winx64my.ini

    即一般linux 上都放在 /etc/my.cnf ,window 上安装都是默认可能按照上面的路径还是没找到,Windows上可以登录到mysql中 使用 show variables like '%data%' 先找到data存放路径,一般my.ini 在 data文件的上一级。

    2.1 Linux系统配置

     # my.cnf中有选项bind-address=127.0.0.1,是说mysql server监听的是本地发来的请求
     #如果是任意主机都可以请求,则写为0.0.0.0,但是这样又不太安全。
     # 监听某ip,指定此ip地址即可,但是要保证mysql的user中有允许此ip访问,否则不能对数据库操作
     
     bind-address=0.0.0.0

    这样配置可实现远程访问,并且IDEA也可直接访问

    2.2 Window系统配置

    bind-address=127.0.0.1注释掉,默认就是bind-address=0.0.0.0

    my.cnf中有选项bind-address=127.0.0.1,是说mysql server监听的是本地发来的请求,如果是任意主机都可以请求,则写为0.0.0.0,但是这样又不太安全。监听某ip,指定此ip地址即可,但是要保证mysql的user中有允许此ip访问,否则不能对数据库操作。那么是否可以在配置里只规定几个ip呢?

    简单直接回答:不可能(详情参考

     [mysqld]
     # 设置3306端口
     port=3306
     # 设置mysql的安装目录
     basedir=E:PATSToolsmysql-5.7.34-winx64mydata
     # 设置mysql数据库的数据的存放目录
     datadir=E:PATSToolsmysql-5.7.34-winx64mydatadata
     ## 允许最大连接数
     max_connections=1000
     ## 允许连接失败的次数。
     max_connect_errors=100
     ## 服务端使用的字符集默认为utf8mb4
     character-set-server=utf8mb4
     ## 创建新表时将使用的默认存储引擎
     default-storage-engine=INNODB
     ## 默认使用“mysql_native_password”插件认证
     ##mysql_native_password
     #default_authentication_plugin=mysql_native_password
     ##sql_mode设置
     ##查询 select @@sql_mode,去除ONLY_FULL_GROUP_BY
     sql_mode= STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
     #注释掉允许任意远程连接
     # 放开注释:
     # bind-address=127.0.0.1 本地连接
     # bind-address=xxx.xxx.xxx.xxx 指定IP连接
     bind-address=127.0.0.1
     [mysql]
     ## 设置mysql客户端默认字符集
     default-character-set=utf8mb4
     [client]
     ## 设置mysql客户端连接服务端时默认使用的端口
     port=3306
     default-character-set=utf8mb4
     

    2.3 bind-address本地设置

    bind-address设置为127.0.0.1本地连接后,IDEA就可以正常启动maven项目,database插件也可正常连接MySQL

    image-20211028002206211


    以上,请参考!

  • 相关阅读:
    利用avalon 实现一个简单的成绩单
    有关less 处理@arguments的一些高级技巧
    迷你MVVM框架 avalonjs 0.9发布
    IE9-10 option BUG
    判定元素正在插入到DOM树——DOMNodeInsertedIntoDocument
    迷你MVVM框架 avalonjs 0.85发布
    机器学习研究与开发平台的选择
    JS生成指定范围内的随机数(支持随机小数)
    DDD领域驱动设计 ---- 系列文章
    序列化效率比拼——谁是最后的赢家avaScriptSerializer方式、DataContract方式、Newtonsoft.Json
  • 原文地址:https://www.cnblogs.com/shuangxinyuan/p/15506469.html
Copyright © 2020-2023  润新知