MySQL은 특정 호스트에서 좋지 않은 연결이 너무 많으면 해당 호스트를 차단한다.

MySQL 환경 설정 값 max_connect_errors 는 MySQL이 좋지 않은 연결에 대한 허용 값을 설정 하는 변수다.

좋지 않은 연결이란 완료되지 않는 모든 연결 시도를 이야기 한다. 대부분 암호가 잘못 된 게 종종 문제의 주범이지만

때로는 네트워크 문제가 원인이 되기도 한다.

MySQL이 호스트를 차단할 때는 다음과 같은 메시지를 볼 수 있다.

Host 'host.badguy.com' blocked because of many connection errors.

Unblock with 'mysqladmin flush-hosts'


 # telnet 192.168.1.2 3306
 Trying 192.168.1.2...
 Connected to 192.168.1.2.
 Escape character is '^]'.
 }너무 많은 연결오류로 인하여 호스트 '192.168.1.1'는 블락되었습니다. 'mysqladmin flush-hosts'를 이용하여 블락을 해제하세요
Connection closed by foreign host.

 

호스트 차단을 푸는 방법은 mysladmin flush-hosts  이다.

이 명령어는 MySQL의 호스트 캐시 테이블을 비운다.

MySQL에서는 하나의 호스트만 따로 차단을 푸는 방법을 제공하지 않는다.

호스트 차단이 문제가 될시에는 my.cnf  파일내에 다음과 같이 설정을 한다.

max_connect_errors=999999999

참고로 max_connect_errors 를 0으로 설정하고 확인을 비활성화 하는것은 불가능 하다.

 

MySQL 에서 확인 방법은 다음과 같다.

mysql> show variables like '%error%';
+--------------------+----------------------------+
| Variable_name      | Value                                   |
+--------------------+----------------------------+
| error_count        | 0                                            |
| log_error          | /home/mysql/data/mysql.err       |
| max_connect_errors | 1000000                              |
| max_error_count    | 64                                        |
| slave_skip_errors  | OFF                                     |
+--------------------+----------------------------+

Posted by 24X365

댓글을 달아 주세요