리눅스, 자료실, 성경검색, 추억의게임, 고전게임, 오락실게임, rootman, http://www.rootman.co.kr
* 34.204.194.190 *
| Home | Profile | Linux | 자료실 | zabbix | Mysql 5.6 | 갤러리 | 성경검색 | 해피니스 | 자유게시판 | 게시물검색 | L | O | R |    

 
[mysql] [mysql] Too Many Connection이나 호스트 블로킹시
 작성자 : rootman
Date : 2002-08-06 14:56  |  Hit : 7,731  

안녕하세요 비온후에 입니다.
오늘은 MySQL에 대하여 글을 하나 올릴까해서입니다.
제가 운영하는 싸이트가 특성상 MySQL의 이용빈도수가 크고 싸이트 이용회수가 많아서 MySQL다운이 되는 경우가 많았습니다.
pgcc로 컴파일도 해보고 my.cnf로 조절하는등 엄청난 노가다를 해냈지만 역쉬나 블로킹 걸리고 (무슨 배구도 아닌데 말임돠) Too Many Connection 걸리고.. 암튼 엄청 깨졌습니다.

그냥 MySQL.Com에서 얻은 글인데 번역한번 해봤습니다
누군가 어디서 해놓은게 있겠지만 나름대로 시간보내감서 했슴돠 도움되길 바라면서
=======================================비온후에====================
===========================================
주된 MySQL서버 에러대한 해결
===========================================
원본 : http://www.mysql.com
번역 : 비온후에 ([email protected])

A.2.4 Host '...' is blocked Error

만약 아래와 같은 에러를 얻는다면
=================================
Host 'hostname' is blocked because of many connection errors.
Unblock with 'mysqladmin flush-hosts'
=================================

this means that mysqld has gotten a lot (max_connect_errors) of connect requests from the host 'hostname'
that have been interrupted in the middle.

After max_connect_errors failed requests, mysqld assumes that something is wrong (like an attack from a cracker),
and blocks the site from further connections until someone executes the command mysqladmin flush-hosts.

By default, mysqld blocks a host after 10 connection errors.
You can easily adjust this by starting the server like this:

shell> safe_mysqld -O max_connect_errors=10000 &
Note that if you get this error message for a given host, you should first check that there isn't anything wrong with TCP/IP connections from that host.
If your TCP/IP connections aren't working, it won't do you any good to increase the value of the max_connect_errors variable!

이메세지는 MySQL 서버데몬(이하 MySQL 이라 칭함)이 max_connect_errors에서 정의된 연결수보다 더많은 연결을 요구받았을 경우에 발생합니다. MySQL은 Max_connect_error후의 실패한 요청에 대하여
마치 크랙커의 공격과 같은 것으로 판단하고 관리자가 mysqladmin flush-host옵션을 실행 할때까지 연결 요청에 대하여 블록킹합니다.
(즉 연결중단이죠 ㅠ.ㅠ)

기본적으로 MySQL데몬은 10번의 커넥션 에러가 발생하면 블로킹상태로 돌입니다.
아래와 같이 Mysql데몬을 시작하면 알맞게 조절할수 있습니다.

shell> safe_mysqld -O max_connect_errors=10000 &
만약 주어진 호스트로부터 이러한 메세지를 또 얻는다면 먼저 호스트로 부터의 TCP/IP연결에 있어서 장애 사항이 있는지 확인하십시오.
당신의 TCP/IP커넥션이 작동하지 않고 있다면 아무리 max_connection_errors의 변수를 아무리 증가시켜봐도 좋은 효과를 거둘수 없습니다.

A.2.5 Too many connections Error

If you get the error Too many connections when you try to connect to MySQL, this means that there is already max_connections clients connected to the mysqld server.
If you need more connections than the default (100), then you should restart mysqld with a bigger value for the max_connections variable.
Note that mysqld actually allows (max_connections+1) clients to connect.
The last connection is reserved for a user with the process privilege.

By not giving this privilege to normal users (they shouldn't need this),
an administrator with this privilege can log in and use SHOW PROCESSLIST to find out what could be wrong.
See section 4.5.5 SHOW Syntax.

The maximum number of connects MySQL is depending on how good the thread library is on a given platform.
Linux or Solaris should be able to support 500-1000 simultaneous connections, depending on how much RAM you have and what your clients are doing.

만약 MySQL 서버데몬(이하 MySQL이라 칭함)에 접속 시도중 Too many connections라는 메세지를 얻는다면 이것은 Mysql 서버 데몬에 max_connections에 정의된 클라이언트수만큼 접속이 꽉 찬것을 의미합니다.
만약 인스톨 당시의 기본세팅(100)보다 더 큰 접속을 원하신다면 Mysql의 max_connections의 변수를 더 올려서 데몬을 제시작시키면 됩니다.
실제로 Mysql은 max_connections에서 하나의 접속을 더 허용합니다.

이것은 마지막 접속은 혜택프로세스의 사용자 즉 관리자를 위해 남겨둡니다.이것은 일반 유저를 위한 잔여접속이 아닙니다.(물론 필요하지도 않죠..하나 더있다고해서 나아질게 없으니까여)
이것은 관리자가 로그인하거나 SHOW PROCESSLIST를 통해 무엇이 잘못되었는지 알아보기 위해 주어집니다.

섹션 4.5.5의 SHOW문법을 참고하세요.
그리고, MySQL의 최대 접속수는 주어진 플랫폼 상에서 얼마나 좋은 쓰레드 라이브러리를 쓰느냐에 달려 있습니다.
리눅스와 솔라리스의 경우 램의 용량과 클라이언트의 작업에 따라서 500-1000명의 동시접속을 허용할수 있습니다.


출처 : 출처 : http://phpschool.com/bbs2/inc_view.html?
id=4267&code=tnt2&start=30&mode=search&s_que=mysql&field=title&operator=and&period=last1year&categ
ory_id=


 
 

Total. 645
번호 분류 제목 작성자 등록일 조회수
540 Doc/Faq [참고] logrotate 를 사용하여서 시스템의 로그 관리 (46) rootman 04-30 7911
539 기초강좌 [표] SAS, SCSI, SATA 성능 단순 비교 rootman 12-22 7902
538 기초강좌 ANSI color codes rootman 02-23 7893
537 mysql [mysql] ERROR 2013: Lost connection 가 발생될 경우 (1) rootman 03-10 7883
536 mod_security [FAQ] hash dos rule #2 rootman 01-09 7756
535 windows tips 프록시 우회 프로그램 (vpn) rootman 03-21 7738
534 mysql [mysql] Too Many Connection이나 호스트 블로킹시 (53) rootman 08-06 7732
533 Shell [날짜] awk를 이용하여 unixtime의 시간 차 구하기 rootman 01-27 7721
532 Shell [예제] 입력받은 문자열 대문자로 모두 변경하기 (1) rootman 09-12 7715
531 ubuntu 우분투에서 CD 굽기 rootman 04-02 7706
530 windows tips 그리드 제거 배치 스크립트 rootman 11-28 7705
529 Doc/Faq 레드햇 7.0 한글 패치하기 (47) rootman 03-20 7692
528 mysql [mysql] mysql error code (48) rootman 04-01 7675
527 Doc/Faq [퍼옴] 제이크의 RPM 빌드 안내서 rootman 10-02 7654
526 Doc/Faq 접속 지연현상에 대한 글 (47) rootman 04-30 7619
 1  2  3  4  5  6  7  8  9  10    
AND OR