zoukankan      html  css  js  c++  java
  • mac环境下mysql5.7版本频繁提示MySQL server has gone away

    问题表象

    表象为:在频繁插入数据时候报错:

    查看日志,也可以在MySQL客户端输入如下指令来获取:

    show variables like ‘log_error’;

    日志中显示:

    [Warning] mysql File Descriptor 1130 exceeded FD_SETSIZE=1024

    从日志可以发现,是mysql打算持有的文件描述符数量超过了系统的限制。

    查资料

    虽然知道问题就是文件打开过多的问题,但是怎么解决又不知道了。直到我找到如下问题以及回答:https://stackoverflow.com/questions/35347378/ (看elplatt的回答)。

    题主的异常LOG和我的是一致的,所以我就开始尝试答案中所说的两个参数:

    table_open_cache

    max_connections

    查看参数目前值

    修改之前得先了解自己的MySQL这两个值目前是多少,不能瞎改。在MySQL客户端内输入如下指令获取目前值:

    show variables like ‘table_open_cache’;

    show variables like ‘max_connections’;

    着手修改参数

    我发现我的table_open_cache参数值是2000。这明显超过了日志中最大值1024,所以将MySQL此值缩小。

    修改/etc/my.cnf:

    [mysqld]

    table_open_cache=500

    然后重启MySQL。发现已经成功!问题不再复现。

    开始我是将table_open_cache设置为1025,发现还是超了一些,为1043。所以想,这个参数只控制的是缓存表文件描述符的个数,但是mysql还会打开其他文件啊,比如各种日志文件等。那设置为1025肯定就不行了,得再小点,因为我是本地测试库,所以随意改为500,也不牵扯什么性能,能跑通程序就行。

    我没有设置max_connections这个参数,因为我发现我只设置table_open_cache一个参数就能解决我的问题。

    祝你好运。

  • 相关阅读:
    ReentrantLock的实现语义与使用场景
    队列同步器详解
    设计模式--模板方法模式
    Synchronized及其实现原理
    JAVA线程基础
    JAVA内存模型
    java 线上问题定位工具
    JMX超详细解读
    Hexo
    [转]html5 video在安卓大部分浏览器包括微信最顶层的问题
  • 原文地址:https://www.cnblogs.com/chriiess/p/14922121.html
Copyright © 2011-2022 走看看