티스토리 뷰

반응형

출처:  https://choiwy.tistory.com/653

 

Unblock with 'mysqladmin flush-hosts' 에러시

MySQL Server가 동작중인지 원격에서 검사할 때 유의할 점이다. 원격 서버의 MySQL 3306 포트가 살아있는지 검사할 때 단순히 커넥션을 한 후 close하게 되면 MySQL은 비정상적인 접속으로 판단하여 해당 IP를 블..

choiwy.tistory.com

출처: https://blog.1day1.org/578

출처: https://m.blog.naver.com/PostView.nhn?blogId=jjijilx2&logNo=221147431525&proxyReferer=https%3A%2F%2Fwww.google.com%2F

 

 

1. 원인

   : A서버 DB에 federated 된 테이블이 다른 서버(B)에 있는 DB의 테이블이었는데 B서버의 mysql에서 A서버의 아이피를 차단한 것.

    차단한 이유는 맨 위의 출처에 따르면 단순히 커넥션  한 후 close했을 때에 mysql에서 이를 비정상적인 접속으로 판단하는데 그 횟수가 mysql의 글로벌 변수 max_connect_errors의 설정값을 초과하게 되면 IP나 호스트를 차단한다고 한다. 

 

 

2. 해결 :  GLOBAL 변수 max_connect_errors의 값을 크게 설정하면 된다. (디폴트는 10이다.)

 

   **Block 된 상태를 먼저 해결하려면 다음 명령어를 실행한다.

     1) mysql에 접속하지 않은 상태라면 (리눅스 루트에서)

        mysqladmin flush-hosts  -uroot -p

     2) mysql에 접속한 상태라면 

        FLUSH HOSTS;

 

   **GLOBAL 변수 값 확인

     SHOW VARIABLES LIKE '%error%'; (또는 %error% 대신 max_connect_errors를 넣어도 된다.)

 

   **max_connect_errors 값 설정

     1) GLOBAL 변수 값 설정 (mysql에 접속한 상태에서)

         SET GLOBAL max_connect_errors = 값;

        : 서버나 mysql을 재시작하지 않아도 적용되나, 서버가 재부팅 되거나 mysql을 재시작 된 경우 값이 초기화 된다.

     2) mysql 설정문서(my.cnf)에서 아래 구문 추가

         max_connect_errors = 값

        : mysql을 재시작한 후에 적용이 된다. 그러나 서버가 재부팅 되거나 mysql이 재시작 되어도 설정값을 유지한다. 

    

3. 주의사항

   : 값을 설정해줘야 하는 곳은 B서버이다. 에러문에 A서버의 아이피가 나온다고 A서버의 값을 수정해봤자 효과는 없을 것이다ㅠㅠ

 

 

 

 

 

 

반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함