MySql5.1 open_files_limit 修改方法

   在使用MySql时遇到(errcode: 24)"out of resources when opening file  ./XXX.MYD"和(error: 24)"can`t creat file ./XX.frm",通过查找资料得知,原因是打开的文件数超过打开文件数的限制。

   这两天就在查找尝试怎样修改打开文件数的限制,通过baidu,得知修改这个值得方法:修改my.ini文件里的max_connections和table_open_cache的值,然后重起mysql 服务就ok。可以通过命令行( show variables like '%open_files_limit%'  )查看。

  

   max_connections 和 table_open_cache 与 open_files_limit 的关系:

 

   max_1 = 10 + max_connections + table_cache * 2;

   max_2 = max_connections * 5;

   max_3 = max_os_open_files;//操作系统单个进程最大允许打开文件句柄(文件描述符)。

 

  open_files_limit = max( max_1, max_2 ) > max_3 ? max_3 : max ( max_1, max_2);

 

  公式在MySql5.1版本测试过,(但在win7 mysql5.5中测试需要在加上一个基数2048,不知道是否还有其他配置字段?还没搞明白)

 

 windows 怎样更改用户句柄设置

    修改注册表 USERProcessHandleQuota

    (默认值为2710(16进制)/10000(10进制),该值的允许范围为 200 ~ 18000 ,将其调整为更多的数值。同样地,对于具有2GB或更多物理内存的系统,不妨将用户句柄数直接设置为上限 18000(10进制);) 没有测试过 :)

 

MySQL引擎:MyIASM, 每打开一个文件,需要打开两个文件句柄。

 

 测试验证方法:

   1)修改 max_connections = 8  ;table_open_cache  = 1; 重起mysql 服务后得出 open_files_limit  = 40

   2)使用命令行执行 select * from table_1, table_2, table_3, table_4, table_5,table_6, table_7, table_8, table_9, table_10,table_11, table_12, table_13, table_14, table_15,table_16, table_17, table_18, table_19, table_20, table_21; #每个table要足够大,使得这条语句可以执行一段时间。

        这时在打开另外的命令行:show status like '%Open_files%';

        就会显示 Open_files = 42

       Open_files(42)  已经超过了open_files_limit(40) ,这时不会出error:24错误。没搞明白 :)

  3)运行一个应用程序(主要是准备表,插入数据操作),就会提示error:24的错误。

  4)重新修改 max_connections = 100  ;table_open_cache  = 512; 重起mysql 服务后得出 open_files_limit  = 1134

  5)重复第3步。不会出现error。

 

测试说明了通过修改这两个参数达到增加打开文件数的限制数。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值