MySQL에서 호스트 'host_name'이 (가) 차단 된 이유는 무엇입니까?


12

내가 MySQL 서버에 연결하는 잘못된 암호를 사용하고, 시험 횟수가 위에있을 때 max_connect_errors, 나는 찾아 Aborted_connects도 카운트 I 시험으로 발생하지만, 호스트는 여전히 차단되지 않습니다.

그렇다면 host_name Aborted_connects이상 max_connect_errors이 차단됩니까?

답변:


8

이 시점에서 FLUSH HOSTS 를 실행 하고 차단이 해제되었는지 확인해야합니다.

MySQL 문서는 FLUSH HOSTS에 대해 다음과 같이 말합니다.

  • 호스트 캐시 테이블을 비 웁니다. 일부 호스트가 IP 주소를 변경하거나 호스트 'host_name'이 차단되었다는 오류 메시지가 표시되면 호스트 테이블을 비워야합니다. MySQL 서버에 연결하는 동안 주어진 호스트에 대해 max_connect_errors 이상의 오류가 연속적으로 발생하면, MySQL은 잘못된 것으로 가정하고 추가 연결 요청으로부터 호스트를 차단합니다. 호스트 테이블을 비우면 호스트에서 추가 연결을 시도 할 수 있습니다. C.5.2.6 절.“호스트 'host_name'이 차단되었습니다”를 참조하십시오. 이 오류 메시지를 피하기 위해 --max_connect_errors = 999999999로 mysqld를 시작할 수 있습니다.

??로 시작하기 위해 호스트를 차단해야하는 이유는 무엇입니까 ??

MySQL 문서 에 따르면 :

다음 오류가 발생하면 mysqld가 중간에 중단 된 'host_name'호스트로부터 많은 연결 요청을 수신했음을 의미합니다. 많은 연결 오류로 인해 'host_name'호스트가 차단되었습니다. 'mysqladmin flush-hosts'로 차단 해제 허용 된 중단 된 연결 요청 수는 max_connect_errors 시스템 변수의 값에 의해 결정됩니다. max_connect_errors가 요청에 실패한 후, mysqld는 무언가가 잘못되었다고 가정하고 (예를 들어 누군가 침입하려고하는 경우) mysqladmin flush-hosts 명령을 실행하거나 FLUSH HOSTS 문을 실행할 때까지 추가 연결에서 호스트를 차단합니다. 5.1.3 절“서버 시스템 변수”를 참조하십시오.

기본적으로 mysqld는 10 개의 연결 오류 후 호스트를 차단합니다. 다음과 같이 서버를 시작하여 값을 조정할 수 있습니다.

shell> mysqld_safe --max_connect_errors=10000 &

주어진 호스트에 대해이 오류 메시지가 표시되면 먼저 해당 호스트의 TCP / IP 연결에 문제가 없는지 확인해야합니다. 네트워크 문제가있는 경우 max_connect_errors 변수의 값을 늘리는 것이 좋지 않습니다.


이러한 오류가 일반적인 MySQL 오류 로그로 이동하는 것처럼 보이지 않습니다. 호스트 차단 연결 오류 로그를 볼 수있는 방법이 있습니까? 또한 위의 "성공적으로"언급했습니다. 그렇다면 사이에 성공적인 연결이 필요합니까? 아니면 그냥 새로운 질문을해야합니까?
Marc L.

1

이러한 차단의 한 가지 원인은 호스트의 임의의 임의 사용자가 MySQL을 모니터링하기로 결정하고 텔넷을 원격 서버의 MySQL 포트에 설정하는 것입니다. 충분한 수의 텔넷 호출로 호스트는 해당 MySQL 서버에 대한 추가 액세스가 차단됩니다. 일부 서버와 달리 MySQL은 적당한 시간이 지난 후에도 액세스를 자동으로 차단 해제하지 않습니다. 서버 관리자는 MySQL을 직접 사용해야합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.