AWS-MySQL 외부에서 접속하기

ik_13038·2022년 8월 16일
0

라이징캠프 2주차

목록 보기
5/10
post-thumbnail

2주차 과제
Local 서버 구축 / Window/MacOS + Apache PHP MySQL (Bitnami) 👌
AWS 서버 구축 / Linux + Nginx PHP MySQ 진행 중..
Sub Domain에 각각 나만의 페이지 만들기

인텔리제이로 익숙한 Jetbrain 사에서 제공하는 Datagrip 툴을 이용해서 AWS EC2 내의 MySQL을 접속해보자.
해당 툴은 SQL 데이터베이스를 작업하는 DBA와 개발자들을 대상으로 하는 크로스 플랫폼 IDE이다
참고로 해당 툴은 30일 무료평가판을 제공한다. 본인이 학교 계정이 있어 Student License로 사용 가능하면 개인적으로는 Workbench보다는 Datagrip을 권장한다.


Mysql 외부에서 접속하기

MySQL 사용자 설정

Datagrip을 사용하기 전에 먼저 외부에서 접속할 Mysql 사용자를 설정해줘야 한다.

$ sudo mysql -u root -p
mysql> create user '사용자이름'@'%' identified by '설정할 비번';
  • 'Username'@'%' : 해당 사용자는 외부에서 접근가능한 권한 부여

사용자로 생성된 모습이다. 본인은 ikkoun으로 설정했다.

데이터베이스 생성

mysql> create database 생성을원하는데이터베이스이름;
mysql> show databases;

본인은 test database를 생성했고 정상적으로 생성된 모습이다.

권한 부여

mysql> grant all privileges on test.* to 'ikkoun'@'%';
mysql> flush privileges;
mysql> show grants for 'ikkoun'@'%';    

테스트 데이터베이스에 모든 권한을 ikkoun 사용자에게 주었다. 항상
권한을 준 이후 flush를 하는 것을 잊지 말자.
관련 명령어는 여기에서 참고하자.

ikkoun이라는 사용자가 test DB에 권한을 가졌다 라는 내용이 출력 되었다.

Mysql 접속 설정

$ cd /etc/mysql/mysql.conf.d
$ sudo vi mysqld.cnf

기존에 바인딩된 주소가 localhost인 127.0.0.1로 설정되어 있을텐데 모든 사용자가 접속할 수 있게끔 0.0.0.0으로 변경해준다.

이후 sudo service mysql restart로 mysql을 재시작 해준다.


DataGrip으로 Mysql 외부 접속하기

이전에 nginx를 접속할 때 인스턴스 서버에서 HTTP로 접속하는 인바운드 규칙을 추가해주었다면 정상적으로 접근이 가능하다. (이전 블로그 글 참고)
포트범위는 유형이 MYSQL이기 때문에 자동으로 3306으로 따라온다.
이제 아까 다운받아놓은 Datagrip을 실행한다.

Datagrip 실행 -> 빈 프로젝트 실행 -> database 선택 -> Mysql 선택


아까 설정한 User와 비밀번호를 설정해주고 Test Connection을 클릭하면 성공/실패 여부를 확인할 수 있다.

접속 이후 database를 확인하면 권한을 상속 받은 DB만 확인할 수 있다. 정상적으로 접속에 성공하였다.

profile
글 연습, 정보 수집

0개의 댓글