Errno: 24 means 'Too many open files'. Everything you do in linux is a file (or rather a file descriptor).
Every mysql connection, every apache connection etc.
By default ubuntu allows users to open 1024 files. The hard limit is 8192. So if you start to hear the melodies of errno 24 its probably time to start increasing this limit
To see how many files a user has open try this
sudo lsof -u mysql
edit the file in /etc/security/limits.conf and add these two mysql lines in at the bottom
#@student - maxlogins 4
mysql soft nofile 4096
mysql hard nofile 8192
# End of file
There is some debate as to whether you need to reboot for this to take effect (i say debate, i rebooted, and didnt google for it as i was in a rush ymmv).
Once this is set you need to make some changes in the mysql file as well. Assuming yours lives in /etc/mysql/my.cnf - edit or add these values
open-files-limit = 2048
table_cache = 512
The table_cache should be researched (start here: http://dev.mysql.com/doc/refman/5.0/en/table-cache.html) and changes monitored. The default value is 64, so 512 should be a safe bet to begin with.
本文详细介绍了如何通过调整Linux系统和MySQL配置,解决MySQL连接过多导致的'Too many open files'错误。包括查看当前用户打开文件数、修改limits.conf文件增加文件限制、以及调整MySQL配置中的open-files-limit和table_cache参数。
5048

被折叠的 条评论
为什么被折叠?



