원격지에서 MySQL Workbench를 사용할 수 있는 것은 큰 이점이 될 것이다. UI라는 것은 항상 사람을 편하게 만들기 때문이다. 비슷한 것으로 MongoDB의 MongoDBCompass가 있다 (이 친구는 더 편하다).
현재 상황은 다음과 같다.
오라클 클라우드에서 돌아가고 있는 MySQL 데이터베이스에 MySQL Workbench를 이용하여 접속하려고 한다.
우리는 세 가지 문제에 직면하게 된다.
- 계정 문제
- MySQL 데이터베이스에 접속하기 위해선 user를 만들어야 한다. 이 때 user는 'username'@'hostname' 형식으로 되어 있다. 이 때 hostname은 해당 유저에 접속하는 컴퓨터의 hostname이다. 따라서 외부에서 접속하기 위해선 이를 바꿀 필요가 존재한다. 호스트네임을 '%' 로 설정하면 localhost를 제외한 모든 호스트에서 접속이 가능한 것으로 보인다.
- GRANT로 권한을 주는 것을 잊지 말아야 한다. Flush privileges도 마찬가지다.
- 방화벽 문제
- inbound TCP 3306 포트를 허용해야 한다. 우분투의 ufw를 사용 중이라면 간단하게 ufw allow 3306을 실행하자.
- 오라클 클라우드 인스턴스를 사용 중에 있으므로 해당 인스턴스에 영향을 주는 보안 정책을 수정해야 한다. 똑같이 인바운드 TCP 3306을 허용해주자.
- MySQL의 binding 주소
- MySQL의 listen 포트가 TCP 3306인 것은 알지만 어떤 IP 주소에 바인딩을 하는가? 기본값으로 127.0.0.1, 즉 loopback address에 binding되므로 외부에서 아예 접속할 수 없다.
- 따라서 /etc/mysql/mysql.conf.d 에 들어가서 mysqld.cnf 를 수정해주자. bind-address=127.0.0.1 로 되어 있는 것 앞에 #를 써 넣어 주석처리를 해주자.
- Don't forget to restart MySQL. (systemctl restart mysql)
이제 데이터베이스를 운영 중인 컴퓨터에서 해결해야 할 문제는 해결되었다.
클라이언트에서는 다음과 같이 간단히 설정하면 된다.

접속 시도 시 비밀번호를 물어본다. 입력하고 진행하면

접속되었다.
~完~