• mysql Communications link failure的解决办法


    com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:Communications link failure Last packet sent to the server was X ms ago

    使用Connector/J连接MySQL数据库,程序运行较长时间后就会报这个错误,有时错误还会提示你修改wait_timeout或是使用Connector/J的autoReconnect属性避免该错误。

    错误的原因:

        MySQL服务在长时间不连接之后断开了,断开之后的首次请求会抛出这个异常

    原因分析:

        1、既然是长时间不连接之后断开了,那这个时间应该是可以设定的,或者现在mysql用的还是默认的值

        2、如何查看现在的时间值,以及如何修改我的mysql是安装在windows系统上,就以这个说明,若是在开发中mysql安装在linux上,操作步骤几乎一样

    查看默认值:

        1、DOC命令启动mysql:mysql -hlocalhost -u用户名 -p密码

        2、查看和连接mysql时间有关的系统变量:show variables like '%timeout%'

    1)interactive_timeout:
    参数含义:服务器关闭交互式连接前等待活动的秒数。交互式客户端定义为在mysql_real_connect()中使用CLIENT_INTERACTIVE选项的客户端。
    参数默认值:28800秒(8小时)

    (2)wait_timeout:
    参数含义:服务器关闭非交互连接之前等待活动的秒数。
    在线程启动时,根据全局wait_timeout值或全局interactive_timeout值初始化会话wait_timeout值,取决于客户端类型(由mysql_real_connect()

    的连接选项CLIENT_INTERACTIVE定义)。
    参数默认值:28800秒(8小时)

    wait_timeout:超时控制的变量,其时间为长度为28800s,就是8个小时,在8个小时之后会断开,需要重新连接,可以在访问的url中使用

    jdbc.url=jdbc:mysql://localhost:3306/nd?autoReconnect=true来是连接自动恢复,但这是mysql4及其以下版本使用,在mysql5中已经无效,必须调整系统变量来控制

    Mysql5中对wait_timeout和interactive_timeout有两个说明:interactive_timeout:服务器关闭交互式连接前等待活动的秒数。交互式客户端定义为在

    mysql_real_connect()中使用CLIENT_INTERACTIVE选项的客户端。又见wait_timeout 

       wait_timeout:服务器关闭非交互连接之前等待活动的秒数。在线程启动时,根据全局wait_timeout值或全局interactive_timeout值初始化

    会话wait_timeout值,取决于客户端类型(由mysql_real_connect()的连接选项CLIENT_INTERACTIVE定义),又见interactive_timeout 

    结论:

        若要修改的话,需要同时修改这两个变量

        变量值大小确定:修改的话,如果变量值有范围大小限制,肯定不要超过变量的最大范围值,查资料知:在windows环境中:1-2147483s,

        Linux环境中:1-31536000s

    解决方案:

    修改MySQL的参数,wait_timeout最大为31536000即1年,在my.cnf中加入: 

    [mysqld] 
    wait_timeout=31536000 
    interactive_timeout=31536000 
    重启生效,需要同时修改这两个参数。

    如果你使用的是hibernate,需要修改连接池的设置,因为 hibernate自带的连接池性能很差,可以使用C3P0,然后配置: 
    test 

    c3p0将建一张名为Test的空表,并使用其自带的查询语句进行测试。如果定义了这个参数那么 属性preferredTestQuery将被忽略。你不能在这张Test表上进行任何操 作,它将只供c3p0测试使用。

    转载地址:

    https://blog.csdn.net/zouxucong/article/details/53924414

    https://blog.csdn.net/Amen_Wu/article/details/55292248

  • 相关阅读:
    Mysql基础(十二):sql语句执行步骤详解(一)准备工作
    JVM 专题二十三:面试题(一)
    leetcode算法题基础(三十八) 并查集(二)547. 朋友圈
    leetcode算法题基础(三十七) 并查集(一)200 岛屿数量
    leetcode算法题基础(三十六)动态规划(四)91. 解码方法
    leetcode算法题基础(三十五)动态规划(三)5. 最长回文子串
    leetcode算法题基础(三十四)动态规划(二)121. 买卖股票的最佳时机
    Virtio-vsock Device + aF_UNIX 套接字通信
    Using the Firecracker Virtio-vsock Device + F_UNIX 套接字通信
    vhost-user
  • 原文地址:https://www.cnblogs.com/zhncnblogs/p/15963492.html
Copyright © 2020-2023  润新知