본문 바로가기

Linux/DB

Mysql [Warning] [Server] IP address 'x.x.x.x' could not be resolved: Temporary failure in name resolution

사내 내부용 홈페이지 운영 중에, 웹페이지 접속 느림 현상이 발생하여 원인을 찾던 중, mysql log에 아래와 같은 경고 메시지가 수십개 찍혀있는것을 확인하였다. 

 

 

Mysql [Warning] [Server] IP address 'x.x.x.x' could not be resolved: Temporary failure in name resolution 

 

 

 

 

웹서버와 디비서버를 분리하여 운영하고 있는데, 웹서버에는 특별한 문제가 없어서, 해당 문제를 해결하기 위해 방법을 찾던 중 해결법을 알아내었다. 

 

 

이 문제는 웹서버와 디비서버를 분리하여 사용할때 주로 나타나는 문제로, 웹서버 접속 시 디비 서버로 클라이언트 접속이 IP 주소로 들어오게 되는데, 서버는들어온 IP에 대한 역질의(resolving)를 수행한다.

 

이때 접속된 클라이언트 IP가 hosts에 등록되어 있지 않다면, DNS 서버의 응답이 느려져, 속도가 느려지는 현상이 발생한다. 

 

이 문제를 해결하지 않으면 다수의 프로세스가 연결이 해제되지 않고 묶여있게 되어, "too many connections" 에러가 발생하여 접속이 불가능해지거나, 접속이 느려지는 현상이 발생하게 된다.

 

 

 

해결법 1 ) /etc/hosts 파일에 접속하는 클라이언트 IP와 호스트명을 작성

 

# vi /etc/hosts

192.168.100.10  test.com

 

 

 

해결법 2) mysql 설정파일에 옵션 추가 

 

# vi /etc/my.cnf

skip-name-resolve  // dns 질의를 스킵하는 옵션 

skip-host-cache // 호스트 이름 캐시 비활성화