错误代码:23 打开文件时资源不足

Posted

技术标签:

【中文标题】错误代码:23 打开文件时资源不足【英文标题】:Error Code: 23 Out of resources when opening file 【发布时间】:2015-10-17 04:51:18 【问题描述】:

当我在 mysql 中执行查询时,我收到此错误:

错误代码:23 打开文件 '.\test\sample_table#P#p364.MYD' 时资源不足(错误代码:24 - 打开的文件过多)

MySQL 版本详情:

VERSION                   5.6.21 
version_comment           MySQL Community SERVER (GPL)
version_compile_machine   x86_64
version_compile_os        Win64

如何解决这个问题?

【问题讨论】:

bugs.mysql.com/bug.php?id=35889 【参考方案1】:

如果您碰巧(像我一样)通过对 35k 行数据运行单个插入查询来进行一些骇人听闻的服务器维护,那么提高open_files_limit不是的答案。试着把你的陈述分解成多个小块。

这里有一些我如何解决我的问题的python代码来说明:

headers = ['field_1', 'field_2', 'field_3']
data = [('some stuff', 12, 89.3), ...] # 35k rows worth

insert_template = "\ninsert into my_schema.my_table () values ;"
value_template = "('', , )"

start = 0
chunk_size = 1000
total = len(data)
sql = ''
while start < total:
    end = start + chunk_size

    values = ", \n".join([
        value_template.format(*row) 
        for row in data[start:end]
    ])

    sql += template.format(headers, values)

    start = end

请注意,我建议作为一项规则运行这样的语句;我的工作快速而肮脏,忽略了适当的清理和连接管理。

【讨论】:

【参考方案2】:

mysql 报错:Out of resources when opening file... (Errcode: 24) 表示已经超过了msyql允许打开的文件数。

此限制由变量 open_files_limit 控制。您可以使用以下语句在 phpMyAdmin(或 MySQL 命令行实用程序)中阅读此内容:

SHOW VARIABLES LIKE 'open%'

要将此变量设置为更大的数字,请编辑 /etc/my.cnf 文件并添加以下行:

[mysqld]
open_files_limit = 5000

【讨论】:

/etc/my.cnf 文件在哪里? 我运行这些 sql SHOW VARIABLES LIKE 'open%' => result= 6209【参考方案3】:

This answer 解释了错误代码 24(位于错误消息的末尾)。

【讨论】:

以上是关于错误代码:23 打开文件时资源不足的主要内容,如果未能解决你的问题,请参考以下文章

电脑文件无法打开每次打开它都显示“无法访问!系统资源不足,无法完成请求的服务”

“内存不足,现在保存文件。”打开word 2003文档时出错

从 Windows 资源管理器中打开 VS Code 中的文件夹

vs打开项目,创建虚拟目录,提示权限不足无法写入配置文件

github下载软件没有权限

MFC新建工程中目录包含中文,资源文件打开失败