본문 바로가기

카테고리 없음

mysql 외부 접속이 안되는 경우



잘 되던 외부 접속이 안된다.


그동안 바뀐 내용은... 외부 접속 IP가 변경됐다.

그래서 mysql의 user, db 테이블의 Host 필드값을 변경했다.

그리고 권한도 재설정했다.


flush privileges;



그래도 안된다.


# mysql -hSERVER_IP -uroot -p

Enter password:

ERROR 2003 (HY000): Can't connect to MySQL server on 'SERVER_IP' (110)



client에서 telnet 으로 3306포트에 대한 접속을 확인해 봤다.

telnet SERVER_IP 3306
Trying SERVER_IP...
telnet: connect to address SERVER_IP: Connection timed out

거부(Connection refused)된 것이 아니고 Connection timed out 이다.




구글에 검색 했더니...


아주 절적한 답을 찾을 수 있었다.


http://stackoverflow.com/questions/9500803/cant-connect-to-mysql-remote





서버가 바쁜(busy)거 같지는 않고 방화벽(firewall) 문제 인거 같다.


그래도 시키는데로 확인해 본다.


# uptime

 13:20:33 up 57 days, 10:14,  1 user,  load average: 0.58, 0.82, 0.65




이번에 방화벽...

서버 관련 작업은 거의 하지 않다보니...
뭔가 있었던거 같은데 기억이 안난다.

아마도 iptables 관련 인거 같은데...




iptables의 현재 상태를 확인해 봤다.


# iptables -nL --line-numbers



역시 이게 맞나보다.


iptables 명령어를 사용하여 수정할 수도 있지만

난, iptables 파일을 직접 수정했다.


iptables의 위치는 /etc/sysconfig/iptables 에 있다.



# vim /etc/sysconfig/iptables




예전 IP 부분을 수정하고 저장했다.


이제 서비스를 다시 시작한다.


# service iptables restart






마지막으로 원격에서 mysql 접속이 잘 되는지 확인해 보자.


# mysql -hSERVER_IP -uroot -p




성공이다!!