많은 DB 요청시 자동으로 막히는 현상 해제
에러가 발생했을 경우 이것은 , 문제(크래커로부터의 공격등 ) 가 발생했다고 판단해 , 이 호스트로부터의 접속을 거부하도록(듯이) 합니다. 이것을 해제하는데는 , 디폴트에서는 , 접속 에러가 10 회 발생하면(자) , 거부합니다. 이 값은 , 이하와 같이 서버를 개시하는 것으로 간단하게 변경할 수 있습니다. 특정의 호스트에 대해서 이 에러 메세지가 발생하는 경우는 , 우선 , 그 호스트로부터의 TCP/IP 접속에 문제가 없는가 확인해 주세요. TCP/IP 접속이 기능하고 있지 않는 경우는 , 변수의 값을 늘려도 효과는 없습니다.Host 'hostname' is blocked because of many connection errors.
Unblock with 'mysqladmin flush-hosts'
mysqld
이 'hostname'
호스트로부터 많은 접속 에러(max_connect_errors
) 를 받았을 경우에 발생합니. max_connect_errors
대량 발생 후 ,mysqld
는 무엇인가 mysqladmin flush-hosts
커멘드를 실행합니다.mysqld
는 그 호스트를 shell>
mysqld_safe -O max_connect_errors=10000 &
max_connect_errors
출처 : http://coffeenix.net/board_print.php?bd_code=383
쉘(도스쉘, 리눅스쉘)모드에서는
shell> mysqld_safe --max_connect_errors=10000 &
mysqladmin variables -p
Enter password:
접속을 하게되면
+---------------------------------+
| Variable_name | Value
+---------------------------------+--------------------------------------------+
| back_log | 50 | basedir | / | binlog_cache_size | 32768 | bulk_insert_buffer_size |
| 8388608 | character_set | euc_kr 등등
여러 값이 나타납니다.
이 부분에서 | max_connect_errors 값을 수백만.. 수천만으로 수정해주시면 되겠습니다.
###########
수정방법.
###########
/etc/my.cnf 파일에 들어가시면 상단부분에
============================수정해야 할 부분==============
set-variable = safe_show_database=ON
set-variable = key_buffer=128M
set-variable = max_allowed_packet=1M
set-variable = table_cache=256
set-variable = sort_buffer=2M
set-variable = record_buffer=2M
set-variable = myisam_sort_buffer_size=64M
set-variable = thread_cache=8
set-variable = max_connect_errors=1845829 <===이곳에 추가를 하였습니다.
# Try number of CPU's*2 for thread_concurrency
set-variable = thread_concurrency=8
#log-bin
server-id = 1
=========================================================
이부분에 추가를 해주시면 max_connect_errors 값이 수정됩니다.