账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    jdbc连接数据库报错communications link failure
    80
    0

    项目是springboot2 + netty项目 打成jar包
    直接用外部jre运行的
    把项目部署在一台电脑上win7x64
    mysql版本5.6.26
    jdbc驱动5.1.36

    项目启动后就报错communications link failure
    卡了很久,应该是连接超时了
    数据库就装在本地,navicat连接没有一点问题
    我又尝试连接我开发电脑的mysql,发现也报相同的错误
    又尝试将项目包括mysql部署在其它的电脑上,有的正常有的报错
    这是为什么?系统都是win7x64
    关键是navicat都可以连接,程序却在有的电脑可以用,有的电脑不行
    这是windwos哪里做了限制吗?
    druid配置,后来换成HiKariCP也不行,应该不是连接池问题

    spring:
      datasource:
        url: jdbc:mysql://127.0.0.1:3306/aaaa?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf8
        username: root
        password: ******
        driver-class-name: com.mysql.jdbc.Driver
        type: com.alibaba.druid.pool.DruidDataSource
        druid:
          initial-size: 100
          min-idle: 5
          maxActive: 500
          maxWait: 60000
          timeBetweenEvictionRunsMillis: 60000
          minEvictableIdleTimeMillis: 300000
          validationQuery: SELECT 1 FROM DUAL
          testWhileIdle: true
          testOnBorrow: true
          testOnReturn: false
          poolPreparedStatements: true
          maxPoolPreparedStatementPerConnectionSize: 20
          filters: stat,wall

    错误信息

    ERROR com.alibaba.druid.pool.DruidDataSource - init datasource error, url: jdbc:mysql://127.0.0.1:3306/aaaa?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf8
    com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: 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.
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:1.8.0_152]

    关键,另外一套基于tomcat的ssh的老程序jdk6的,用同一数据库以及驱动,可以连接成功,不过连接池用的c3p0
    这样一来就是我程序问题?或者是maven打包把啥不该打包的也搞进去了?
    不过有的pc可以有的pc不行没道理啊

    1
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 11 元积分
        全部回答
    • 0
    • 三分钟放纵 普通会员 1楼

      "communications link failure"通常指的是网络连接不稳定或者中断,可能是由于网络连接故障、防火墙或安全策略设置不当、数据库服务器性能低下等原因导致的。以下是一些可能的解决方法:

      1. 检查网络连接:确保你的网络连接是稳定的,没有断开或者延迟。

      2. 检查防火墙和安全策略:确保你的防火墙和安全策略没有阻止你的应用程序访问数据库。

      3. 调整数据库服务器性能:如果你的数据库服务器性能低下,可能会影响你的应用程序的性能。可以尝试增加硬件资源,或者优化数据库查询语句。

      4. 更新数据库驱动:有时候,更新数据库驱动可能会解决一些问题。确保你的数据库驱动是最新的。

      5. 查看数据库日志:大多数数据库都有日志文件,可以查看错误日志,找到问题的根源。

      如果以上方法都无法解决问题,可能需要寻求专业的IT支持。

    • 喲丿妞你赞 普通会员 2楼

      "communications link failure"通常指的是网络连接不稳定或者中断,可能是由于网络连接故障、防火墙或安全策略设置不当、数据库服务器性能低下等原因导致的。以下是一些可能的解决方法:

      1. 检查网络连接:确保你的网络连接是稳定的,没有断开或者延迟。

      2. 检查防火墙和安全策略:确保你的防火墙和安全策略没有阻止你的应用程序访问数据库。

      3. 调整数据库服务器性能:如果你的数据库服务器性能低下,可能会影响你的应用程序的性能。可以尝试增加硬件资源,或者优化数据库查询语句。

      4. 更新数据库驱动:有时候,更新数据库驱动可能会解决一些问题。确保你的数据库驱动是最新的。

      5. 查看数据库日志:大多数数据库都有日志文件,可以查看错误日志,找到问题的根源。

      如果以上方法都无法解决问题,可能需要寻求专业的IT支持。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部