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 설정 


  1. MySQL 서버 정보를 세션에 추가한다.
  2. 좌측의 Connection -> SSH -> Tunnels  를 클릭한다.
  3. 화면에서 Source Port(4406)Destination(localhost:3306)을 입력하고 Add 를 클릭한다.


    위 설정은 localhost 의 4406 포트에 연결하면 putty 가 연결된 remote 의 3306 포트에 포워딩하겠다는 의미이다.

  4. putty 에서 mysql.example.com 으로 ssh 포트로 연결한다.
  5. MySQL client 에서 다음 설정으로 연결해서 정상 동작 여부를 확인한다.

    mysql -u user -pPasswd -P4406

See Also