MySQL DataGrip으로 외부 접속하고 phpMyAdmin 설치하기

JIYOON·2021년 6월 2일
0

Web Server

목록 보기
4/5
post-thumbnail

1️⃣ MySQL 계정 생성과 외부 접속 허용

01. 환경

VM: AWS EC2 인스턴스
OS: Ubuntu 20.04 LTS
WebServer : Nginx
Backend-Language : PHP
DBMS : MySQL




02. MySQL 계정 생성 및 권한 부여

1) 새로운 계정 생성

$ sudo mysql -u root -p

root 사용자로 mysql에 진입한다.

mysql> create user '[원하는 username]'@'%' identified by '[원하는 password]';

사용자 접근 허용범위 설정
'Username'@'%' : 해당 사용자가 외부에서 접근 가능하다. 본 포스팅에서는 %로 설정하여 진행한다.
'Username'@'localhost' : 해당 사용자가 내부에서만 접근 가능하다.
'Username'@'[지정된 IP 주소]' : 해당 사용자가 지정된 IP 주소에서만 접근 가능하다.


2) 생성 확인

mysql> show databases;

database를 보여준다.

mysql> use mysql;

database 중 mysql database로 진입한다.

mysql> select user, host from user; 

생성된 사용자를 확인한다.


3) 데이터베이스 생성

mysql> show databases;

데이터베이스를 확인한다.

mysql> create database [database 이름];

데이터베이스를 생성한다.


4) 데이터베이스 권한 부여

mysql> grant all privileges on [데이터베이스].* to '[사용자]'@'%';

사용자에게 데이터베이스에 접근할 권한을 부여한다.

mysql> flush privileges;

사용자를 추가, 삭제, 권한 변경 등을 한 변경 사항을 즉시 반영한다.

flush privileges의 의미 by 열린기술자

mysql> show grants for '[사용자]'@'%';

사용자가 부여받은 권한을 확인한다.




03. MySQL 외부 접속 설정

exit

MySQL을 빠져나온다.

$ cd /etc/mysql/mysql.conf.d

MySQL의 설정 파일로 접근한다.

$ sudo vim mysqld.cnf

MySQL의 설정 파일을 vi 편집기로 수정한다.

bind-address 		= 0.0.0.0

43번째 줄의 설정을 0.0.0.0으로 수정한다.
43을 입력하고 shift+g를 입력하면 43번째 줄로 이동한다.
입력 모드 전환키인 i,a,o,I,A,O 등을 입력하여 입력모드로 전환한 뒤 수정하고 esc로 명령모드로 전환한다.
:wq 명령어로 파일을 저장한 뒤 빠져나온다.
이를 통해 MySQL의 외부접속을 허용할 수 있다.

vi 편집기 기본 사용법 by 양햄찌

$ sudo service mysql restart

MySQL을 재시작하여 변경사항을 저장한다.




04. AWS EC2 인스턴스 인바운드 규칙 추가

  1. AWS EC2 인스턴스 > 보안 > 인바운드 규칙
  2. 규칙 추가 > 유형 MySQL/Aurora로 설정, 소스 위치 무관 설정 > 규칙 저장

이로써 EC2 인스턴스 내의 MySQL로 3306 포트를 통해 IP 무관하게 접근할 수 있다.





2️⃣ DataGrip으로 외부에서 MySQL 접속

  1. DataGrip 설치 및 실행
  2. File > new > project > DataSource > MySQL
  3. Name 자유 입력, Host에 AWS EC2 인스턴스 IPv4 외부 아이피 입력, port 3306 확인, User과 Password는 앞서 MySQL에 생성한 사용자와 비밀번호 입력
  4. Test Connection
  5. Apply

MySQL 정보가 불러와진 것을 볼 수 있다.

왼쪽 DataBase 창에 본 포스팅에서 생성한 데이터베이스가 보이지 않는다면 다음 링크를 따라 시행한다. MySQL 외부에서 접속 by dev_Lumin





3️⃣ phpMyAdmin 설치

01. 정의

MySQL 데이터베이스와 그래픽 인터페이스를 사용해 상호 작용하는 데 사용되는 웹 전용 툴이다. 브라우저를 통해 명령을 내릴 수 있으며 자료를 일목요연하게 볼 수 있다는 장점이 있다.




02. 설치

$ sudo apt update
$ sudo apt upgrade
$ sudo apt install phpmyadmin

패키지를 최신 버전으로 업데이트한 후 phpMyAdmin을 설치한다.

  1. phpMyAdmin의 데이터베이스를 dbconfig-common로 설정 여부 > No

    본 포스팅에서는 이미 MySQL 데이터베이스를 설치했으므로 No를 선택했다.

  2. MySQL 애플리케이션 암호 > 원하는 비밀번호 설정
  3. Web Server 선택 > Tab

    본 포스팅에서는 Web Server을 Nginx로 지정했으므로 보기에 없기에 Tab으로 선택지를 건너뛴다.




03. Nginx와 phpMyAdmin 연결

1) 심볼릭 링크 설정

phpMyAdmin은 웹을 이용해 MySQL을 제어하는 툴이므로, 웹 서버인 Nginx가 phpMyAdmin 툴을 제공할 수 있도록 설정해야 한다. 이를 위해선 Nginx가 phpMyAdmin 파일을 올바르게 찾아야 하는데, phpMyAdmin 디렉토리인 /usr/share/phpmyadmin로부터 Ninx 도큐먼트 root 디렉토리인 /var/www/html/phpmyadmin로 심볼릭 링크를 생성해야 한다.

(* 심볼릭 링크 : 링크를 연결하여 원본 파일을 직접 사용하는 것과 같은 효과를 내는 링크, 윈도우의 바로가기와 같이 생각하면 된다.)

$ sudo ln -s /usr/share/phpmyadmin /var/www/html/phpmyadmin

- ln -s [대상 원본 파일] [새로 만들 파일 이름]명령어로 심볼릭 링크를 설정한다.

심볼릭 링크 해제와 설정에 대한 설명 by qjadud22


2) Nginx 설정 수정

$ sudo vi /etc/nginx/sites-available/default

Nginx 설정 파일을 수정한다.

index.php를 추가한다.
이를 통해 php 파일이 nginx를 통해 웹에 보일 수 있게 됐다.

$ sudo service nginx restart

변경된 설정 적용을 위해 Nginx를 재시작한다.


3) 연결 확인

http://[도메인 혹은 IP 주소]/phpmyadmin

다음 주소로 접근했을 때 phpMyAdmin 페이지가 나온다면 성공!
본 포스팅 과제를 모두 끝냈다!

❗️ 좀 더 공부할 것 : phpMyAdmin의 보안 강화하기
Nginx phpMyAdmin 설치하기 by 갈루아에서 보안 강화 부분 읽고 따라해보자!





✅ Reference

MySQL 외부에서 접속 by dev_Lumin
Mysql 사용자 조회/추가/생성/삭제 by TechNote.kr
MySQL과 친해지는 phpmyadmin by 크레이
phpMyAdmin 설치과정 정리 by 짐농
Nginx phpMyAdmin 설치하기 by 갈루아

0개의 댓글