NGMsoftware

NGMsoftware
로그인 회원가입
  • 매뉴얼
  • 학습
  • 매뉴얼

    학습


    Database MySQL - Forcing close of thread XXX user: XXX

    페이지 정보

    본문

    안녕하세요. 엔지엠소프트웨어입니다. MySQL 데이타베이스를 사용하다가 서버에서 에러가 발생하면 엔지엠 매크로의 연결이 끊어지는 경우가 있습니다. 구글링을 해봐도 정확한 원인은 알 수 없었습니다만, 해결 방법은 찾을 수 있었습니다. 이 문제는 MySQL의 버그인듯한데요. 상당히 오래된 문제라서 최신 버전은 문제가 없지 않을까 생각했습니다. 그런데, 지금도 이 문제가 발생되더라구요^^;

     

    서버마다 다르겠지만, skip_name_resolve 설정을 my.cnf에 적용시키세요. 데이타베이스를 다시 시작하고, 동일한 문제가 발생하는지 모니터링 해야 합니다. 이외에도 hosts 파일에 hostname과 서버 IP를 추가해줘야 한다는 글들도 있는데요. 이게 해결책인지는 확인할 수 없었습니다. 리눅스에서는 이와같은 문제를 겪어보지 못했고요. 윈도우에 MySQL을 설치한 경우 발생된 문제였습니다. 리눅스 서버는 아래와 같이 수정해야 합니다.

    # vi /etc/my.cnf
    
    [mysqld]
    skip-external-locking
    skip-host-cache
    skip-locking
    skip-name-resolve

     

    이 후 mysqld를 restart해줘야 적용됩니다. 보통 서버는 살아있고, 데몬만 죽는거 같습니다. 추측이지만, 쿼리 또는 수행 시간이 긴 경우에 발생하는거 같습니다. 네트워크도 영향을 주지 않을까 생각되네요. 아무튼, MySQL 서버는 외부로부터 접속 요청을 받을 경우 인증을 위해 IP 주소를 호스트명으로 바꾸는 과정을 수행합니다. 이때문에 접속시 불필요한 부하가 발생하는데요. skip-name-resolve를 추가하면 좀 더 빠르게 접속할 수 있습니다.

     

    이렇게 문제가 해결되지 않는다면 인덱스, 파티션등등... 성능에 영향을 주는 쿼리들도 확인 해보세요. 인덱스가 없거나 잘못된 경우 JOIN 속도가 많이 느려집니다. 플랜을 떠서 튜닝하고, 인덱스를 다시 추가 해보세요. 이렇게하면 문제를 해결할 수 있을겁니다.

     

    개발자에게 후원하기

    MGtdv7r.png

     

    추천, 구독, 홍보 꼭~ 부탁드립니다.

    여러분의 후원이 빠른 귀농을 가능하게 해줍니다~ 답답한 도시를 벗어나 귀농하고 싶은 개발자~

    감사합니다~

    • 네이버 공유하기
    • 페이스북 공유하기
    • 트위터 공유하기
    • 카카오스토리 공유하기
    추천0 비추천0

    댓글목록

    등록된 댓글이 없습니다.