인텔리제이로 외부에서 MySQL 접속하기

콜트·2021년 1월 7일
0

본 글은 인텔리제이로 AWS EC2 인스턴스 내부의 MySQL 서버에 외부 접속하는 방법을 다루고 있습니다. 본 실습에 사용된 인텔리제이는 Community 버전이 아닌 Ultimate 버전인 점을 유의하시기 바랍니다.

로컬에서 원격 데이터베이스로 붙을 때 사용하는 MySQL의 대표적인 GUI 클라이언트는 Workbench, SQLyog(유료), Sequel Pro(맥 전용), DataGrip(유료) 등이 있습니다. 각각의 도구마다 큰 차이가 없으니 본인이 가장 좋아하는 툴을 사용하면 됩니다. 인텔리제이 Community 버전을 사용한다면 Database 플러그인을 설치해서 진행할 수도 있습니다.

MySQL 유저 생성

  1. EC2 인스턴스 서버에 접속한 뒤, sudo mysql -u root -p 를 통하여 mysql에 접속한다.

  2. 유저를 생성한다.

  • 'testUser'@'%' : testUser id는 외부에서 접근 가능
  • 'testUser'@'localhost' : testUser id는 내부에서 접근 가능
  • 'testUser'@'192.168.0.xxx' : testUser id는 192.168.0.xxx IP로만 접근 가능
  • 여기서 host%*(애스터리스크)와 같은 의미이다.
  1. 다음과 같은 순서로 유저가 잘 생성되었는지 확인해본다. colt라는 user가 생성된 것을 확인할 수 있다.

  2. 간단하게 테스트용으로 사용할 데이터베이스 RP2를 만들었다.

  3. 다음으로는 조금 전에 생성한 colt라는 유저에게 RP2 데이터베이스에 대한 권한을 부여한다(권한에는 열람권한도 포함되어 있는데, 이 권한이 없으면 show databases; 명령어를 입력해도 권한이 없는 데이터베이스는 보이지 않는 것 같다. 이것 때문에 후에 확인하느라 삽질 좀 했다).

MySQL 외부 접속 설정

  1. 이제 외부 접속을 하기위한 설정을 해줘야한다. 다음 명령어를 입력해 설정파일인 mysqld.cnf를 수정해주자.

  2. mysqld.cnf 내부를 살펴보면 bind-address127.0.0.1로 되어있는데, 외부 접속을 허용해주기 위해 이를 0.0.0.0으로 바꿔준다.

  3. 그리고 다음으로는 AWS EC2 인스턴스인바운드 규칙MySQL 접속을 위한 3306 포트를 추가(개방)해준다.

  4. 앞서, 설정 파일을 변경했으므로 변경사항을 적용해주기 위해 mysql을 재실행해준다.

인텔리제이에서 AWS EC2 인스턴스MySQL 서버 외부 접속하기

  1. 인텔리제이에서 빈 프로젝트를 하나 생성한다.

  2. 우측에 Database 단추를 클릭한 뒤,

  3. 다음과 같이 MySQL을 선택해준다.

  4. 그러면 다음과 같이 데이터베이스 정보를 입력하는 창이 나오는데, Name에는 원하는 이름을, Host에는 AWS EC2 인스턴스퍼블릭 IPv4 주소를, UserPassword에는 조금전에 EC2 인스턴스MySQL에 접속해서 생성한 유저명과 비밀번호를 입력해준다. 그 다음에 아래에 있는 Test Connection 버튼을 누르면!

  5. 초록색 체크 표시와 함께 외부에서 접속할 수 있게 된다.

  6. Apply 버튼을 눌러 적용한 뒤 OK 버튼으로 빠져나오면 우측에 아까 EC2 인스턴스에서 생성한 데이터베이스인 RP2가 보인다. 이렇게 되면 외부 접속이 잘 이루어진 것이다.


참고자료


profile
개발 블로그이지만 꼭 개발 이야기만 쓰라는 법은 없으니, 그냥 쓰고 싶은 내용이면 뭐든 쓰려고 합니다. 코드는 깃허브에다 작성할 수도 있으니까요.

0개의 댓글