如何解决MySQL中文件未找到的现象

如果遇到“ERROR '...'未发现(errno: 23)”,“无法打开文件:... (errno: 24)”,或来自MySQL的具有errno 23或errno 24的其它错误,它表示未为MySQL服务器分配足够的文件描述符。你可以使用perror实用工具来了解错误编号的含义:

shell> perror 23

错误代码23:文件表溢出

shell> perror 24

错误代码24:打开文件过多

shell> perror 11

错误代码11:资源暂时不可用

这里的问题是,mysqld正试图同时打开过多的文件。你可以通知mysqld不要一次打开过多文件,或增加mysqld可用文件描述符的数目。

要想通知mysqld将一次打开的文件控制在较小的数目上,可降低table_cache系统变量的值(),从而减少表高速缓冲(默认值为64)。降低max_connections的值也能降低打开文件的数目(默认值为100)。

要想更改mysqld可用的文件描述符的数目,可在mysqld_safe上使用“--open-files-limit”选项或设置(自MySQL 3.23.30开始)open_files_limit系统变量。

设置这些值的最简单方式是在选项文件中增加1个选项。

如果mysqld的版本较低,不支持设置打开文件的数目,可编辑mysqld_safe脚本。在脚本中有1个注释掉的行ulimit -n 256。你可以删除‘#’字符取消对该行的注释,更改数值256,以设置mysqld可用的文件描述符数目。

“--open-files-limit”和ulimit能够增加文件描述符的数目,但最高不能超过操作系统限制的数目。此外还有1个“硬”限制,仅当以根用户身份启动mysqld_safe或mysqld时才能覆盖它(请记住,在该情况下,还需使用“--user”选项启动服务器,以便在启动后不再以根用户身份继续运行)。如果需要增加操作系统限制的对各进程可用文件描述符的数目,请参阅系统文档。

注释:如果运行tcsh shell,ulimit不工作!请求当前限制值时,tcsh还能通报不正确的值。在该情况下,应使用sh启动mysqld_safe。

时间: 2024-11-16 08:12:31

如何解决MySQL中文件未找到的现象的相关文章

Access出现"所有记录中均未找到搜索关键字"的错误解决_Access

Microsoft JET Database Engine 错误 '80004005' 所有记录中均未找到搜索关键字. 开始一直调试是不是数据错误,Access的"压缩和修复数据库"也点了很多次,等第二次提交修改都出现问题,后来使用信息内容换成少量字符(随便几个字符),提交了N次都正常,开始还怀疑我的Access数据库是不是出问题了,怪了.百度搜索一下错误代码,发现还蛮多这样的文章,哈,找到原因了. 如果access的备注字段存在索引,当字段的内容超过1908个字节后,该记录将不可删除

Win7系统显示“Win7*.Vxd文件未找到”怎么办

  有的用户反应在w7系统中经常出现"Win7*.Vxd文件未找到"提示窗口,这给我们操作系统带来巨大麻烦,出现这种故障提示很多用户也不知道该如何解决,下面小编针对系统提示"Win7*.Vxd文件未找到"进行分析以及解决支招介绍. 原因分析: VxD的简写是virtual X driver,其实也就是虚拟设备驱动程序.一旦计算机显示"Win7*.Vxd文件未找到"的提示,那么最常见的原因都是因为win7 64位旗舰版在卸载软件的时候没有彻底删除或

javascript-js中属性未找到Type Uncatch rror

问题描述 js中属性未找到Type Uncatch rror 3C 是js引入的不对还是代码写错了请看图答题. 解决方案 js 动态改变imput type属性 解决方案二: 是js代码有问题,检查下这个length属性操作的代码,只有array对象才有这个属性的. 解决方案三: 可否给出报错的js文件?

排他访问-求解决MVC中文件访问冲突的问题

问题描述 求解决MVC中文件访问冲突的问题 我在MVC某个Action中需要访问一个服务器文件,其中包含写文件操作,当多个用户同时访问这个action的时候我如何去避免文件访问的冲突呢??? 我试了进程斥量实现排他访问 结果不行 各位大神有没有好的解决方案? 解决方案 不要搞什么进程了, 虚得很.访问前判断此文件处理什么状态就好了. using System;using System.Collections.Generic;using System.Linq;using System.Text;

jxl问题 我在服务器端用jxl读写了一个excel文件 下下来 居然文件未找到,然后修复才看到

问题描述 如题,有没有办法直接打开这个文件啊.为什么会文件未找到呢? 解决方案 解决方案二:下下来打开后出现很多异常先是要不要启用宏,这个我知道,然后就是文件未找到了,点确定,然后修复,再点启用宏,然后才打开打开后还有一个东西弹出来,要关闭才可以看得到内容.....

Excel中通过双击打开时提示"文件未找到"怎么解决

故障现象: 当您双击某个 Microsoft Excel 文件类型 (.xls) 时,Excel 正常启动,但然后您会收到一条与以下内容类似的错误信息: 找不到 C:/文件名.xls.请检查文件名的拼写正确,并验证文件位置正确.如果您尝试打开的文件列表中的大多数最近使用的文件在文件菜单上的,请确保该文件未被重命名. 移动或删除. 当您在错误消息上单击确定时,消息会再次出现.重复单击确定后,将打开该文件. 原因分析: 如果此文件类型的打开操作项以 %1 结尾,会出现此行为. 如果该文件类型的打开操

在 Excel中通过双击打开时提示"文件未找到"怎么办

故障现象: 当您双击某个 Microsoft Excel 文件类型 (.xls) 时,Excel 正常启动,但然后您会收到一条与以下内容类似的错误信息: 找不到 C:\文件名.xls.请检查文件名的拼写正确,并验证文件位置正确.如果您尝试打开的文件列表中的大多数最近使用的文件在文件菜单上的,请确保该文件未被重命名. 移动或删除. 当您在错误消息上单击确定时,消息会再次出现.重复单击确定后,将打开该文件. 原因分析: 如果此文件类型的打开操作项以 %1 结尾,会出现此行为. 如果该文件类型的打开操

Win7 32位系统出现提示“Win7*.Vxd文件未找到”怎么办

  1.首先在运行对话框中输入"regedit"回车进入注册表; 2.在打开的注册表中,点击菜单上方的"编辑--查找",然后在查找目标搜索框中查找你未找到的文件win7*.Vxd; 3.查找到之后把win7*.Vxd文件从注册表中删除,然后退出注册表就可以了.

解决MySQL中Sleep连接过多的问题

在mysql中运行SHOW PROCESSLIST;,现数据库中有很多这样的进程: 其实就是MySQL中Sleep连接过多,那么造成sleep的原因,有三个,下面是mysql手册给出的解释: 1.客户端程序在退出之前没有调用mysql_close().[写程序的疏忽,或者数据库的db类库没有自动关闭每次的连接...]2.客户端sleep的时间在wait_timeout或interactive_timeout规定的秒内没有发出任何请求到服务器. [类似常连,类似于不完整的tcp ip协议构造,服务