업무/DB

[mysql] open_files_limit늘리기(Cant' open file "errno: 24")

랄프위검 2012. 9. 5. 14:09

테이블이 많을때 비정상적으로 출력이 되어


mysql 오류를 보면...;

Can't find file: './CrediMail/tb_webhard554_hits.frm' (errno: 24)

.....

라고 출력되고, 에러를 토함.


해결방법

my.cnf 파일에

open_files_limit = 4096


추가후

mysql을 재기동하여 확인한다.

mysql> show variables like 'open_files%';

+------------------+-------+
| Variable_name    | Value |
+------------------+-------+
| open_files_limit | 4096  |
+------------------+-------+


끝.

-------------------------------------------------------------------

근데 이렇게 쉽게 변경되어있지 않고 1024로 박혀있는 경우가있다.

그럴경우 다시 mysql 에러로그를 보면

[Warning] Could not increase number of max_open_files to more than 1024 (request: 4096)

라는 에러가 나온다.


이러면 시스템상에서 제한을 풀어주어야 한다.

# ulimit -a |grep open  을 해보면

open files                      (-n) 1024  로 되어있음.


root계정으로 들어간후

# vi /etc/security/limits.conf

을 열어서


....

web(계정명)        soft    nofile           4096

web(계정명)        hard    nofile           4096

....


추가하고 리눅스 재기동!


mysql 에 접속하여 다시 확인해보면 제대로 되어있음.

그래도 에러가난다면 리밋을 더 올림.


끝.