ERROR 1018 (HY000): Can't read dir of '.' (errno: 24)
Upon searching for some solutions at google we found out that the error 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.
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.
7 comments:
Thanks for posting this - it 100% fixed my problem.
Anytime David! Always glad to help!
Thanks, this has helped alot!
Thanks for the post... I got Instant fix for the error... :)
Thank you so much!
Our websites worked until this morning, seems that somebody hacked the server.
After cleaning the hack-script, the databases did not show up anymore.
Your Info was the solution to this problem.
It's great to have people like you, sharing your know-how with us.
Saved my day.
OMG, THankS So MuCh, lifeSever!!
Ditto what the others all said, my mileage didn't vary, instant fix, didn't even need a reboot just restarting mysql. thanks for keeping old posts alive.
Post a Comment