异常LOG

问题表象

表象为:在连接数据库时报以下错误:

The last packet sent successfully to the server was 0 milliseconds ago

导致报此异常LOG的情况真的是太多了,所以为解决此异常,必须去看

查看日志

我找MySQL日志位置的方法,执行如下命令:

ps aux | grep mysql

在结果中找到日志位置:

–log-error=/usr/local/mysql/data/mysqld.local.err

也可以在MySQL客户端输入如下指令来获取:

show variables like ‘log_error’;

日志中显示:

[Warning] File Descriptor 1832 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一个参数就能解决我的问题。

祝你好运。

原创文章,作者:geekgao,如若转载,请注明出处:https://www.geekgao.cn/archives/35

mysql 文件描述符_MySQL异常探究:File Descriptor xxxx exceeded FD_SETSIZE=xxxx相关推荐

  1. mysql 文件描述符_MySQL没有发布临时文件描述符

    几天前,我们遇到了 MySQL安装的一些严重问题: MySQL不断打开临时文件(正常行为)但这些文件从未发布过.结果是,最终磁盘空间耗尽,我们必须重新启动服务并手动清理/ tmp. 使用lsof,我们 ...

  2. Linux网络编程(六)-高并发服务器03-I/O多路复用03:epoll【红黑树;根节点为监听节点】【无宏FD_SETSIZE限制;不需每次都将要监听的文件描述符从应用层拷贝到内核;不需遍历树】

    一.epoll概述 epoll的本质是一个[红黑树].监听结点为根节点. 大量并发,少量活跃效率高. epoll是Linux下多路复用IO接口select/poll的增强版本,它能显著提高程序在大量并 ...

  3. linux存储--文件描述符fd与FILE结构体(二)

    文件描述符fd 对于linux而言,所有对设备(对于linux而言,一切皆文件)和文件的操作都使用文件描述符来进行的. 文件描述符是一个非负的整数,它是一个索引值,指向内核中每个进程打开文件的记录表. ...

  4. linux存储--文件描述符以及file结构体(一)

    一.什么是文件描述符 在Linux下一切皆文件,对于内核而言,所有打开的文件都通过文件描述符引用,文件描述符是一个非负整数,当打开一个现有文件或者创建一个新文件时,内核向进程返回一个文件描述符.当读. ...

  5. OS / Linux / 文件描述符以及 file 结构体

    零.前言 程序可以理解为硬盘上的普通二进制文件:进程是加载到内存中的二进制文件,除了加载到内存中的二进制文件外,还附有所有对于该二进制文件描述信息的结构体,描述该进程的结构体叫PCB(进程控制块),在 ...

  6. 文件描述符file descriptor与inode的相关知识

    每个进程在Linux内核中都有一个task_struct结构体来维护进程相关的 信息,称为进程描述符(Process Descriptor),而在操作系统理论中称为进程控制块 (PCB,Process ...

  7. linux中文件描述符fd和文件指针flip的理解

    整理自:http://www.cnblogs.com/Jezze/archive/2011/12/23/2299861.html 简单归纳:fd(file descriptor)只是一个整数,在ope ...

  8. (整理类)文件描述符,文件描述符标志,文件状态标志

    感谢和参考于(你们是我成长路上的最大助力!): Linux中文件描述符fd和文件指针flip的理解 文件描述符标志.文件状态标志 Linux编程–文件描述符fd PART 1 文件描述符:fd(fil ...

  9. android MemeoryFile和Parcel操作文件描述符fd

    ParcelFileDescriptor pfd; FileDescriptor fd; Parcel p; static byte[] testString = new byte[] {1,2,3, ...

最新文章

  1. 2020年企业业务营收同比增长23.0%,华为的数字化转型实践之道
  2. 给脚本添加可执行权限,并执行脚本 转
  3. 教你如果设置自己喜欢的QQ背景音乐
  4. 恭喜神策数据客户即刻完成 C 轮融资
  5. DM368开发 --IPNC 设置过程
  6. 互联网常识(持续更新)
  7. ZT:CSS实现水平|垂直居中漫谈
  8. 详解队列在前端的应用,深剖JS中的事件循环Eventloop,再了解微任务和宏任务
  9. 设计一个分步式登录系统_分布式系统:何时构建它们以及如何扩展。 分步指南。
  10. 《HTML5与CSS3实战指南》——2.3 HTML5常见问题
  11. Bootstrap3.0 栅格系统背后的精妙魔法(Bootstrap3.0的栅格布局系统实现原理) - willian12345...
  12. Django主从数据库分离配置
  13. 蓝牙学习笔记(九)——BLE超过20字节数据包传输(MTU)
  14. $.ajax跳入error之 async
  15. leetcode 225. Implement Stack using Queuesk
  16. js读取excel文件
  17. 面试整理—计算机及网络工程师常见问题
  18. SitePoint / Flippa Hack Day:入侵我们的第一个物联网项目
  19. win10开机自动拨号上网
  20. 从磁盘到B树到B+树

热门文章

  1. 同惠TH2817BLCR测试仪+LCR数字电桥
  2. 《少林达摩易筋经》惊现淘宝网! 1
  3. 计算机控制系统席爱民4,计算机控制系统(席爱民).pdf
  4. CRM中的俱乐部管理
  5. autoform分析用什么计算机,AutoForm R6基本操作和模拟分析设置详细步骤!
  6. 目前有哪些方式训练一个领域的大语言模型? Beyond One-Model-Fits-All A Survey of Domain Specialization LLM
  7. 2021-04-18 读书笔记-白鹿原
  8. 联通iPhone无WiFi芯片是个不明智的选择
  9. SOA/软件架构设计---面向服务的架构(SOA详细解释)
  10. c语言程序设计 谢蓉蓉 答案,C语言程序设计