MYSQL: Out of resources when opening file… (Errcode: 24)
Azi dimineață m-am lovit de o nouă problemă: nu puteam accesa feed-ul pentru shopmania. În mod normal, probabil aș fi aflat destul de târziu de problema asta dacă cei de la shopmania n-ar fi avut implementat un sistem automat de verificare, care m-a anunțat prin email cum că “nenea, vezi că nu-ți mai putem citi feed-ul“. Așa că m-am pus pe “săpat”, să văd de unde apare problema. Deci …
Pentru verificare, am accesat fișierul “datafeed_shopmania_xx.php” direct din browser, unde îmi returna o mândrețe de eroare care zice așa:
Not Found
Query error: Out of resources when opening file ‘/tmp/#sql_9a7_0.MYD’ (Errcode: 24)
Iar pentru cei care se vor lovi de problema aceasta, am să prezint aici și rezolvarea …
Intrați în PhpMyAdmin, mergeți în tab-ul “SQL” și scrieți următoarea comandă:
1 | SHOW VARIABLES LIKE 'open_files_limit'; |
… apoi dați click pe butonul “Go” din dreapta-jos.
Va afișa un rezultat de genul:
Rețineți valoare actuală de la “open_files_limit“! În exemplul de față, aceasta fiind:
open_files_limit 1185
Intrați pe server iar în consola SSH (logat ca “root”) dați următoarea comandă (puteți folosi “vi” dacă nu aveți “nano”):
1 | nano /etc/my.cnf |
Aici, căutați “[mysqld]“, iar dacă nu găsiți (nu aveți) atunci adăugați “[mysqld]” după care, undeva sub “[mysqld]” adăugați următoarea comandă astfel încă să arate ceva de genul:
1 2 | [mysqld] open_files_limit = 2185 |
… unde “2185″ este un exemplu, însă, voi va trebui să verificați numărul de fișiere utilizat și să adăugați cu un 1000 mai mult decât “consumul actual”, asta deoarece setarea unui număr prea mare va duce la un consum mai mare de meorie RAM pe care MySQL îl va utiliza. Dacă aveți serverul “îndopat” cu mult RAM, atunci nu prea e o problemă, la serverele cu mai puțin RAM trebuie setat cu grijă …
Salvați modificările, după care dați comanda:
1 | service mysqld restart |
Apoi, verificați iarăși feedul …. acesta ar trebui să meargă acum.
Documentație: www.dev.mysql.com
Succes!