VM: AWS EC2 인스턴스
OS: Ubuntu 20.04 LTS
WebServer : Nginx
Backend-Language : PHP
DBMS : MySQL
$ sudo mysql -u root -p
root 사용자로 mysql에 진입한다.
mysql> create user '[원하는 username]'@'%' identified by '[원하는 password]';
사용자 접근 허용범위 설정
'Username'@'%' : 해당 사용자가 외부에서 접근 가능하다. 본 포스팅에서는 %로 설정하여 진행한다.
'Username'@'localhost' : 해당 사용자가 내부에서만 접근 가능하다.
'Username'@'[지정된 IP 주소]' : 해당 사용자가 지정된 IP 주소에서만 접근 가능하다.
mysql> show databases;
database를 보여준다.
mysql> use mysql;
database 중 mysql database로 진입한다.
mysql> select user, host from user;
생성된 사용자를 확인한다.
mysql> show databases;
데이터베이스를 확인한다.
mysql> create database [database 이름];
데이터베이스를 생성한다.
mysql> grant all privileges on [데이터베이스].* to '[사용자]'@'%';
사용자에게 데이터베이스에 접근할 권한을 부여한다.
mysql> flush privileges;
사용자를 추가, 삭제, 권한 변경 등을 한 변경 사항을 즉시 반영한다.
mysql> show grants for '[사용자]'@'%';
사용자가 부여받은 권한을 확인한다.
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의 외부접속을 허용할 수 있다.
$ sudo service mysql restart
MySQL을 재시작하여 변경사항을 저장한다.
이로써 EC2 인스턴스 내의 MySQL로 3306 포트를 통해 IP 무관하게 접근할 수 있다.
MySQL 정보가 불러와진 것을 볼 수 있다.
왼쪽 DataBase 창에 본 포스팅에서 생성한 데이터베이스가 보이지 않는다면 다음 링크를 따라 시행한다. MySQL 외부에서 접속 by dev_Lumin
MySQL 데이터베이스와 그래픽 인터페이스를 사용해 상호 작용하는 데 사용되는 웹 전용 툴이다. 브라우저를 통해 명령을 내릴 수 있으며 자료를 일목요연하게 볼 수 있다는 장점이 있다.
$ sudo apt update
$ sudo apt upgrade
$ sudo apt install phpmyadmin
패키지를 최신 버전으로 업데이트한 후 phpMyAdmin을 설치한다.
본 포스팅에서는 이미 MySQL 데이터베이스를 설치했으므로 No를 선택했다.
본 포스팅에서는 Web Server을 Nginx로 지정했으므로 보기에 없기에 Tab으로 선택지를 건너뛴다.
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
$ sudo vi /etc/nginx/sites-available/default
Nginx 설정 파일을 수정한다.
index.php를 추가한다.
이를 통해 php 파일이 nginx를 통해 웹에 보일 수 있게 됐다.
$ sudo service nginx restart
변경된 설정 적용을 위해 Nginx를 재시작한다.
http://[도메인 혹은 IP 주소]/phpmyadmin
다음 주소로 접근했을 때 phpMyAdmin 페이지가 나온다면 성공!
본 포스팅 과제를 모두 끝냈다!
❗️ 좀 더 공부할 것 : phpMyAdmin의 보안 강화하기
Nginx phpMyAdmin 설치하기 by 갈루아에서 보안 강화 부분 읽고 따라해보자!
MySQL 외부에서 접속 by dev_Lumin
Mysql 사용자 조회/추가/생성/삭제 by TechNote.kr
MySQL과 친해지는 phpmyadmin by 크레이
phpMyAdmin 설치과정 정리 by 짐농
Nginx phpMyAdmin 설치하기 by 갈루아