执行mysqldump 出现errno24错误:Too many open files

2 篇文章 0 订阅

事件

需要对数据库xxxdb进行备份
执行 mysqldump --databases xxxdb > xxxdb.mysql

报错

mysqldump: Got error: 1016: “Can’t open file: ‘./xxxdb/userio_day6_12_hour.frm’ (errno: 24)” when using LOCK TABLES
检查
perror 24 :
OS error code 24: Too many open files

排查与解决

主要原因就是lock tables时候文件打开句柄太多导致,可以适当调大文件打开数句柄
我这边的环境是调整到65535,然后可以正确执行mysqldump

数据库查看limit文件打开数限制

mysql>SHOW VARIABLES LIKE ‘%open_files_limit%’;

±-----------------±------+

| Variable_name | Value |

±-----------------±------+

| open_files_limit | 1024 |

±-----------------±------+

操作系统查看limit文件打开数限制

ulimit -n 查看open file limits限制

操作系统修改文件打开数

修改/etc/security/limits.conf:
echo ’
* hard nofile 65535
* soft nofile 65535
’ >> /etc/security/limits.conf
重新登录一下shell终端

数据库修改open_files_limit

A: 6.x mysql

在 my.cnf mysqld添加
open_files_limit = 65535
重启mysql服务

B: 7.x mariadb
vim /usr/lib/systemd/system/mariadb.service
找到Service ,添加LimitNOFILE=65535
在这里插入图片描述

systemctl --system daemon-reload
systemctl restart mariadb

最终再检查一下:
操作系统limit
数据库的limit

介绍内容如下: cat /usr/lib/systemd/system/mariadb.service

For example, if you want to increase mariadb’s open-files-limit to 10000,
you need to increase systemd’s LimitNOFILE setting, so create a file named
“/etc/systemd/system/mariadb.service.d/limits.conf” containing:
[Service]
LimitNOFILE=10000

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值