Mysql Errcode: 24 - Too many open files

    Out of resources when opening file '**.MYD' (Errcode: 24 - Too many open files)

今天测试数据库出现链接一打开表就报上面这个错 

首先给出解决方案:

 flush tables;//命令将会清空当前所有缓存的表。

set global table_open_cache=214;//释放缓存的文件数。

比较适合的值:
Open_tables / Opened_tables >= 0.85
Open_tables / table_open_cache <= 0.95

show global status like 'open_%';//这个是查看全局被打开的状态,下面那条就是查看表的

SHOW GLOBAL STATUS LIKE 'open%tables';//查看被打开表数及被打开过的表数。

其中open_tables表示当前打开的table总和,即所有connection打开的table总数。
opened_tables表示打开过的表的数量总和,只有show global status才能看到它的值。这是个计数器,Opened_tables/Uptime的值过大说明table_open_cache过小,导致一些table对象(即下文说的table对象)经常会刷出server层,需要的时候再创建,最终导致此计数过大。

    show variables like 'table%‘; //展示参数设置表高速缓存的数目。

每个连接进来,都会至少打开一个表缓存,如果在表缓冲区中还有空间,该表就被打开并放入其中,这样可以更快地访问表内容。因此, table_open_cache的大小应与 max_connections 的设置有关。

         例如,对于 200 个并行运行的连接,应该让表的缓存至少有 200 × N ,这里 N 是应用可以执行的查询的一个联接中表的最大数量。此外,还需要为临时表和文件保留一些额外的文件描述符。

show global variables like 'max_connections';//这是是查询数据库当前设置的最大连接数


                

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

任玉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值