mysql 文件描述符_MySQL异常探究:File Descriptor xxxx exceeded FD_SETSIZE=xxxx
异常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相关推荐
- mysql 文件描述符_MySQL没有发布临时文件描述符
几天前,我们遇到了 MySQL安装的一些严重问题: MySQL不断打开临时文件(正常行为)但这些文件从未发布过.结果是,最终磁盘空间耗尽,我们必须重新启动服务并手动清理/ tmp. 使用lsof,我们 ...
- Linux网络编程(六)-高并发服务器03-I/O多路复用03:epoll【红黑树;根节点为监听节点】【无宏FD_SETSIZE限制;不需每次都将要监听的文件描述符从应用层拷贝到内核;不需遍历树】
一.epoll概述 epoll的本质是一个[红黑树].监听结点为根节点. 大量并发,少量活跃效率高. epoll是Linux下多路复用IO接口select/poll的增强版本,它能显著提高程序在大量并 ...
- linux存储--文件描述符fd与FILE结构体(二)
文件描述符fd 对于linux而言,所有对设备(对于linux而言,一切皆文件)和文件的操作都使用文件描述符来进行的. 文件描述符是一个非负的整数,它是一个索引值,指向内核中每个进程打开文件的记录表. ...
- linux存储--文件描述符以及file结构体(一)
一.什么是文件描述符 在Linux下一切皆文件,对于内核而言,所有打开的文件都通过文件描述符引用,文件描述符是一个非负整数,当打开一个现有文件或者创建一个新文件时,内核向进程返回一个文件描述符.当读. ...
- OS / Linux / 文件描述符以及 file 结构体
零.前言 程序可以理解为硬盘上的普通二进制文件:进程是加载到内存中的二进制文件,除了加载到内存中的二进制文件外,还附有所有对于该二进制文件描述信息的结构体,描述该进程的结构体叫PCB(进程控制块),在 ...
- 文件描述符file descriptor与inode的相关知识
每个进程在Linux内核中都有一个task_struct结构体来维护进程相关的 信息,称为进程描述符(Process Descriptor),而在操作系统理论中称为进程控制块 (PCB,Process ...
- linux中文件描述符fd和文件指针flip的理解
整理自:http://www.cnblogs.com/Jezze/archive/2011/12/23/2299861.html 简单归纳:fd(file descriptor)只是一个整数,在ope ...
- (整理类)文件描述符,文件描述符标志,文件状态标志
感谢和参考于(你们是我成长路上的最大助力!): Linux中文件描述符fd和文件指针flip的理解 文件描述符标志.文件状态标志 Linux编程–文件描述符fd PART 1 文件描述符:fd(fil ...
- android MemeoryFile和Parcel操作文件描述符fd
ParcelFileDescriptor pfd; FileDescriptor fd; Parcel p; static byte[] testString = new byte[] {1,2,3, ...
最新文章
- 2020年企业业务营收同比增长23.0%,华为的数字化转型实践之道
- 给脚本添加可执行权限,并执行脚本 转
- 教你如果设置自己喜欢的QQ背景音乐
- 恭喜神策数据客户即刻完成 C 轮融资
- DM368开发 --IPNC 设置过程
- 互联网常识(持续更新)
- ZT:CSS实现水平|垂直居中漫谈
- 详解队列在前端的应用,深剖JS中的事件循环Eventloop,再了解微任务和宏任务
- 设计一个分步式登录系统_分布式系统:何时构建它们以及如何扩展。 分步指南。
- 《HTML5与CSS3实战指南》——2.3 HTML5常见问题
- Bootstrap3.0 栅格系统背后的精妙魔法(Bootstrap3.0的栅格布局系统实现原理) - willian12345...
- Django主从数据库分离配置
- 蓝牙学习笔记(九)——BLE超过20字节数据包传输(MTU)
- $.ajax跳入error之 async
- leetcode 225. Implement Stack using Queuesk
- js读取excel文件
- 面试整理—计算机及网络工程师常见问题
- SitePoint / Flippa Hack Day:入侵我们的第一个物联网项目
- win10开机自动拨号上网
- 从磁盘到B树到B+树
热门文章
- 同惠TH2817BLCR测试仪+LCR数字电桥
- 《少林达摩易筋经》惊现淘宝网! 1
- 计算机控制系统席爱民4,计算机控制系统(席爱民).pdf
- CRM中的俱乐部管理
- autoform分析用什么计算机,AutoForm R6基本操作和模拟分析设置详细步骤!
- 目前有哪些方式训练一个领域的大语言模型? Beyond One-Model-Fits-All A Survey of Domain Specialization LLM
- 2021-04-18 读书笔记-白鹿原
- 联通iPhone无WiFi芯片是个不明智的选择
- SOA/软件架构设计---面向服务的架构(SOA详细解释)
- c语言程序设计 谢蓉蓉 答案,C语言程序设计