putty 로 ssh port forwarding 하여 remote 에 있는 MySQL 연결
MySQL 사용자 계정은 mysql.user 테이블에 저장된다. 계정 등록시 보통 localhost 에서만 연결 가능하게 설정한다. (select user,host from mysql.user; 로 확인)
remote MySQL 에 연결하라면 3306 포트에 대해 방화벽을 열고(Linux 의 iptables 포함) MySQL 의 계정에 연결 허용할 IP를 설정하거나 % 로 모든 IP 에서 가능하게 해야 하나 ssh 의 포트 포워딩 기능을 이용하여 이를 우회할 수 있다.
연결할 MySQL 서버의 도메인은 mysql.example.com 이고 포트는 3306 이라고 가정한다.
Putty 설정
- MySQL 서버 정보를 세션에 추가한다.
- 좌측의 Connection -> SSH -> Tunnels 를 클릭한다.
화면에서 Source Port(4406)와 Destination(localhost:3306)을 입력하고 Add 를 클릭한다.
위 설정은 localhost 의 4406 포트에 연결하면 putty 가 연결된 remote 의 3306 포트에 포워딩하겠다는 의미이다.
- putty 에서 mysql.example.com 으로 ssh 포트로 연결한다.
MySQL client 에서 다음 설정으로 연결해서 정상 동작 여부를 확인한다.
mysql -u user -pPasswd -P4406
See Also