MySQL Workbench를 이용하여 원격 MySQL DB에 접속하기

THXX·2023년 9월 19일
0
post-thumbnail

원격지에서 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)

이제 데이터베이스를 운영 중인 컴퓨터에서 해결해야 할 문제는 해결되었다.
클라이언트에서는 다음과 같이 간단히 설정하면 된다.

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

접속되었다.

~完~

profile
THXX FOR EVERYTHING

0개의 댓글