MySQL 사용 중 log에 다음과 같은 경고가 찍히는 경우가 있다.
외부에서 mysql server에 connection 요청을 하게 되면, mysql server는 DNS를 통해 해당 host가 무엇인지 확인합니다.
그리고 그 해당 host에 대한 정보를 다시 사용하거나 관리하기 위해performance_schema.host_cache 에 저장합니다.
만약 DNS에 문제가 생기게 되면, host를 확인하는 과정때문에 접속시간이 오래 걸릴 뿐만아니라 connection들이 계속 쌓여서 문제가 발생할 수 있고 결국엔 mysql 데몬이 죽을 수도 있습니다.
해당 서버로 접속하는 서버들을 /etc/hosts에 등록하여 DNS를 거치지 않게 하거나, 다음과 같이 my.cnf [mysqld] 섹션에 skip-name-resolve를 추가하기.
# sudo vi /etc/my.cnf
[mysqld]
skip-external-locking
skip-host-cache
skip-locking
skip-name-resolve
추가하기
sudo /usr/local/mysql/support-files/mysql.server restart
# SQL 접속
mysql> show global variables like 'skip_name_resolve';
+-------------------+-------+
| Variable_name | Value |
+-------------------+-------+
| skip_name_resolve | ON |
+-------------------+-------+