错误代码: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文档时出错