Legacy/Database

[MySQL] DB 연결 에러(blocked because of myny connection errors)

Foo 2015. 11. 8. 04:35
728x90

마찬가지로 분산 및 병렬처리에서 발생한 에러

xxx.xxx.xxx.218 에서 JDBC를 이용해 217로 접속하면서 발생했다.

원인은 자기 자신이 아닌 다른 호스트에 있는 DB에 접속할 때 에러를 여러번 띄우면 DB에서 접속을 차단하는 식이다.

아마 SQL Injeciton과 같은 에러를 막으려고 한 것 같다.. (추측입니다.)


출처 - http://superad.tistory.com/entry/DB-%EC%97%B0%EA%B2%B0-%EC%97%90%EB%9F%AC-%EB%B0%9C%EC%83%9Dblocked-because-of-many-connection-errors

DB 연결 에러가 발생 내용 


Warning: mysql_connect(): Host 'ns1.****.net' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts' in /home/counter/public_html/login_ok.php on line 8

DB connent Error... Check your database configuration file (config.lib.php)


[ 오류 ]


Host 'hostname' is blocked because of many connection errors. Unblock with 'mysqladmin flush-hosts'


[ 원인 ]


해당오류는 호스트로부터의 접속요청중 max_connect_errors와 관련된 접속의 설정값보다 초과하여 발생할 때 생기는

오류이다. 설정값 이상의 요청이 들어올 경우 mysqld는 해킹 및 잘못된 요청으로 관주하여 host 부터의 접속을 블락하

게된다.


[ 해결 ]


1.flush-hosts 명령어를 사용하여 초기화한다.


[root@super]# /usr/local/mysql/bin/mysqladmin -u root -p flush-hosts


2.mysql 데몬시작시 max_connect_errors 값을 올려준다.


[root@super mysql]# ./bin/safe_mysqld --user=mysql -O max_connect_errors=10000 &