본문 바로가기
Server

AWS 서버 구축하기(2) / MySQL 외부 접속 / phpMyAdmin 설치

by 멍진 2022. 4. 21.

MySQL 외부에서 접속하기

 

이전 글에서 AWS 서버를 구축하고, 외부에서 phpinfo 페이지를 띄우는 것까지 마쳤다.

이번에는 DataGrip을 이용해서 서버에 다운받은 Mysql에 외부에서 접속해 볼 것이다.

Datagrip이란?

외부 접속을 하기 위해서 DB 개발과 관리를 용이하게 해주는 GUI 개발 툴이다.


Mysql 사용자, DB 생성

$ sudo mysql -u root -p
mysql> create user 'Woody'@'%' identified by 'Loveme00!@';

'Username'@'%' : 해당 사용자에게 외부에서 접근가능한 권한을 부여한다.

외부 접근 권한이 있는 Woody라는 사용자를 생성하고, myTestDB라는 이름으로 새로운 데이터베이스를 생성했다.

권한 부여

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

myTestDB 에 대한 권한을 Woody라는 사용자에게 부여하고, 변경내용을 바로 적용시켰다.

Woody가 가진 권한을 확인하는 명령어를 입력하면 다음과 같이 나온다.

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

mysql.conf.d 경로로 들어가서 mysqld.cnf 파일을 수정해준다.

bind-address를 찾아 모두 접속 가능하게 0.0.0.0으로 주소를 바꿔준다.

인스턴스 인바운드 규칙에 MySQL 3306포트를 추가해준다.

MySQL 인바운드 규칙 추가

DataGrip에서 외부 접속

DataGrip을 실행하고, File -> New -> DataSource -> MySQL 을 선택하면 다음과 같은 창이 나온다.

mySQL 외부 접속

Host를 내 인스턴스의 탄력적 IP로 하고, 아까 권한을 주었던 user 와 비밀번호를 입력한 후 Test Connection을 눌렀더니 Succeeded 가 나왔다. 처음에는 연결이 잘 안돼서 열심히 구글링 해 본 결과, 규칙 편집 이후에 MySQL을 재시작 하지 않아서 생긴 문제였다.

sudo service mysql restart

show databases; 를 하면 MySQL 서버에서 만들어 두었던 myTestDB를 확인할 수 있다.

 


 

phpMyAdmin 설치하기

 

phpmyadmin이란?

우리가 설치한 mysql을 GUI(사용자 인터페이스)로 좀 더 편리하게 관리 할 수 있는 소프트웨어 도구이다.

$ sudo apt update
$ sudo apt install phpmyadmin

첫 번째로 apche2, lighttpd중 무엇을 사용 할 것인지를 물어본다. 우리는 자동 구성을 지원하지 않는 nginx를 사용 하기 때문에 체크하지 않고 ok를 누르고 넘어간다.

두번째로는 DB를 추가로 설치할 것인지 물어보는데, 우리는 이미 MySQL을 사용중이므로 No를 누른다.

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

nginx의 설정 디렉토리로 들어가서 index에 추가로 phpinfo.php를 입력한다.

여기서 주의할 점은 index.nginx-debian.html보다 앞에 phpinfo.php를 입력하면 aws 인스턴스 ip로 접속할 때 default 값으로 phpinfo.php가 연결된다. 따라서, phpinfo.php로 연결됐을 때만 연결하고 싶으면 맨 뒤에 입력해야 한다.

 

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

nginx 웹서버가 phpmyadmin을 정상적으로 찾고 제공하기 위해 설치 파일에서 Nginx 문서 루트 디렉터리로 심볼릭 링크를 걸어준다.

이후 nginx 서버를 재시작해준다.

인스턴스 탄력적IP/phpmyadmin/phpinfo.php 로 접속하면 phpMyAdmin 페이지가 뜨는 것을 확인 할 수 있다.

외부 접근 권한을 주었던 mySQL user와 비밀번호를 입력하면 아까 생성한 myTestDB를 확인할 수 있다.

 

다음 글에서는 Domain 적용, HTTPS 적용 (let's encrypt),  Sub Domain 적용 (Dev, Prod), Redirection 적용을 해보겠다.

댓글