• Mysql:mysql5.7长时间不连接失效问题


    问题

    mysql5数据库连接超时问题:待机一晚上后,第二天早上第一次登录总是失败。

    查看日志发现如下错误:

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

    问题原因

    是由mysql5数据库的配置引起的。mysql5将其连接的等待时间(wait_timeout)缺省为8小时。

    客户程序中可以这样来查看其值:

    命令:

    #查看待机时长(28800 seconds,也就是8小时。)
    show global variables like 'wait_timeout';

    总结

    如果在wait_timeout秒期间内,数据库连接(java.sql.Connection)一直处于等待状态(不连接数据库的状态),mysql5就将该连接关闭。这时,你的Java应用的连接池仍然合法地持有该连接的引用。当用该连接来进行数据库操作时,就碰到上述错误。这解释了为什么我的程序第二天不能登录的问题。

    解决

    wait_timeout的最大值分别是24天/365天(windows/linux)。

    修改mysql5的配置文件“my.ini”(mysql5 installation dir)

    #修改文件
    vi /etc/my.cnf
    #添加一行
    wait_timeout=1814400
    #保存退出
    wq!

    测试显示问题解决了。

    文章转载至:https://blog.csdn.net/qq_19590345/article/details/47261469

  • 相关阅读:
    第21周六
    第21周五
    第21周四
    第21周三
    C/C++中各种类型int、long、double、char表示范围(最大最小值)
    插入排序
    面向对象的5个基本设计原则
    红黑树
    Cocos2d-x学习笔记(六) 定时器Schedule的简单应用
    SNMP协议具体解释
  • 原文地址:https://www.cnblogs.com/nhdlb/p/13293658.html
Copyright © 2020-2023  润新知