
2주 전에 새 서버를 구입했는데 그 이후로 가끔 이 서버의 데이터베이스에 연결하는 데 오류가 발생합니다. mysqld를 다시 시작한 후의 오류 로그입니다.
var/log/mysqld.log:
131206 10:54:37 [ERROR] Error in accept: Too many open files
131206 10:58:53 [ERROR] Error in accept: Too many open files
131206 11:03:09 [ERROR] Error in accept: Too many open files
131206 11:07:25 [ERROR] Error in accept: Too many open files
131206 11:11:41 [ERROR] Error in accept: Too many open files
131206 11:15:58 [ERROR] Error in accept: Too many open files
131206 11:20:14 [ERROR] Error in accept: Too many open files
131206 11:24:30 [ERROR] Error in accept: Too many open files
131206 11:28:46 [ERROR] Error in accept: Too many open files
131206 11:33:02 [ERROR] Error in accept: Too many open files
이 문제를 해결하려면 어떻게 해야 합니까?
나쁜 영어로 죄송합니다.
업데이트:
my.cnf를 업데이트하는 것을 도와주실 수 있나요?
[mysqld]
local-infile=0
innodb_file_per_table
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
Linux server.com 2.6.32-279.el6.x86_64 #1 SMP Fri Jun 22 12:19:21 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux
PHP 5.3.27 (cli) (built: Nov 28 2013 02:21:29)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2013 Zend Technologies
with the ionCube PHP Loader v4.4.4, Copyright (c) 2002-2013, by ionCube Ltd., and
with Zend Guard Loader v3.3, Copyright (c) 1998-2010, by Zend Technologies
mysql Ver 14.14 Distrib 5.5.31, for Linux (x86_64) using readline 5.1
CentOS release 6.4 (Final)
답변1
마지막 업데이트에 따르면 열려 있는 파일이 너무 많아 문제가 있는 것으로 나타났습니다. 최대 열린 파일 수에 대한 ulimit를 늘려야 합니다.
제가 생각하는 기본값은 1024입니다(execute로 확인할 수 있습니다 ulimit -a
). 실행하여 이 값을 늘립니다.
ulimit -n newvaule
이 실행 중인 세션에 대한 새 값으로 설정되며 즉시 적용됩니다.
또는 재부팅 후에도 변경 사항을 적용하려면 다음을 수행하십시오. 루트로 /etc/security/limits.conf 파일을 편집하고 끝에 다음 두 줄을 추가하십시오.
* 소프트 노파일 16000 * 하드 노파일 20000
위의 두 줄은 최대 파일 핸들 수(nofile)를 새로운 설정으로 변경합니다.