m1ndy5's coding blog

DataGrip을 사용해 MySQL외부에서 접속하기 본문

settings

DataGrip을 사용해 MySQL외부에서 접속하기

정민됴 2023. 1. 30. 13:08

https://www.jetbrains.com/ko-kr/datagrip/download/#section=windows

 

DataGrip 다운로드: 데이터베이스 및 SQL용 크로스 플랫폼 IDE

 

www.jetbrains.com

MySQL을 관리할 수 있는 프로그램은

  1. PhpMyAdmin
  2. WorkBench
  3. DataGrip
    정도가 있다.

PhpMyAdmin

  • 오픈 소스 데이터베이스 관리 프로그램
  • https://ko.wikipedia.org/wiki/PhpMyAdmin
  • 해커들이 크롤링할 수 있는 위험이 있음(보통 주소/phpmyadmin 이렇게 해놓기 때문에)

WorkBench

DataGrip

  • DB 개발과 관리를 용이하게 해주는 GUI 개발 도구
  • PostgreSQL, MySQL을 비롯하여 SQL Server, Oracle, MongoDB와 같은 다른 많은 데이터베이스 및 DDL 데이터 소스를 지원
  • 나같은 경우 학생용 라이센스로 무료로 사용중이다! (원래는 유료로 알고 있음)

이렇게 보니까 뭔가 DataGrip 홍보대사 인거 같긴한데 어쨌든 나는 아는 사람의 추천으로 DataGrip을 가장 먼저 접했다!

1. MySQL 사용자를 생성한다.

  • $ sudo mysql -u root -p (비밀번호가 있다면 비밀번호 입력)
    이렇게 뜨면 mysql 접속 성공이다.

  • mysql> create user 'm1ndy5'@'%' identified by 'password'; (m1ndy5 부분엔 name을 password 부분엔 비밀번호를 집어넣으면 된다.)

※ 사용자를 생성할 때 접속 범위를 지정할 수 있는 방법

  • 'Username'@'%' : 해당 사용자는 외부에서 접근가능
  • 'Username'@'localhost' : 해당 사용자는 내부에서만 접근 가능
  • 'Username'@'xxx.xxx.xxx.xxx' : 해당 사용자는 지정한 ip주소로만 접근 가능
  • mysql> show databases; // 모든 database를 보여줌
  • mysql> select databases(); // 현재 database를 보여줌
  • mysql> user mysql; // mysql database를 사용
  • mysql> select user, host from user; // mysql database의 사용자 목록 출력

2. Database를 생성한다.

  • mysql> create database Testdb;
  • mysql> show databases;

    데이터베이스 스키마를 생성한다음 확인해보면 잘 생성이 되어있는 것을 볼 수 있다.

3. Database에 권한을 부여한다.

  • mysql> grant all privileges on Testdb.* to 'm1ndy5'@'%';
  • mysql> flush privileges;
  • mysql> show grants for 'm1ndy5'@'%';

    이렇게 m1ndy5에 Testdb 관리에 관한 모든 권한이 주어졌다.
    만약 권한을 뺏고 싶은 경우 revoke all privileges on Testdb.* from 'm1ndy5'@'%'; 해주면 된다.

4. 외부에서 접속할 수 있도록 설정한다.

이제 mysql을 나가고 mysqld.cnf 파일을 만져줄 것이다. (나갈 땐 exit입력하면 나가진다.)

5. AWS EC2 인스턴스 인바운드 규칙을 추가한다.

이제 mysql에 접근할 수 있도록 포트를 열어주는 포트 포워딩을 해야한다.
AWS EC2 인스턴스를 클릭해서

보안 -> 보안그룹을 클릭한다.

인바운드 규칙 편집 클릭!

이렇게 mysql 포트 컬럼 하나를 추가한다. 사용자 어쩌고 써져있는 부분 클릭해서 anywhere로 바꾸면 외부어디서나 접속하게 열어준 것이다.

6. DataGrip으로 database에 접근한다.

DataGrip에 접속하여

File -> New -> Project 를 클릭해 새로운 프로젝트를 만들어준다.

이름은 원하는대로! 나는 현재 인스타그램 서버를 만들어보는 중이라 instagram으로 하였다.

DataSource -> MySQL 을 선택해준다.

  • Name : 원하는대로
  • Host : ec2 인스턴스 ip
  • Port : 3306 (기본)
  • User : 아까 mysql에서 설정했던 유저
  • Password : 그에 맞는 비밀번호
  • Test Connection : 잘 연결되는지 확인
    각자에 맞게 써준다음 OK를 클릭!
    이제 만들었던 database 스키마에 들어가야한다.

    맨 위 오른쪽에서 관리하고 싶은 database 스키마를 골라준다음

    introspect schema 를 클릭해준다.

    이렇게 왼쪽에 나타난다면 성공이다!!!!

참고 블로그 : https://luminitworld.tistory.com/82