본문 바로가기
OS/Linux

[AWS] EC2 우분투(Ubuntu) MariaDB 외부접속 허용

by 8ugust 2022. 2. 1.

 MariaDB 설치를 완료하고 외부에서 접속하려니 Connect 에러가 발생한다. 외부 접속을 허용해주지 않아서 발생한 에러라고 한다. 오늘은 AWS EC2 인스턴스에 설치한 MariaDB를 외부에서 접속하는 방법에 대해 글을 적어보려고 한다. 어렵지 않으니 간략하게 방법만 기재하도록 하겠다.

 

 

 


1. MariaDB 설정 변경

// MariaDB 설정 변경
$ sudo su -
$ vi /etc/mysql/mariadb.conf.d/50-server.cnf

 설정파일을 보면 port가 주석처리 되어있다. 기본적으로 3306 포트를 사용하고 있어서인데, 풀어서 다른 포트를 사용해도 상관없다. 나는 뭐가 되었건 설정이 되어있는게 좋아서, 주석 해제한 뒤 3306 포트 그대로 사용할 수 있도록 두었다. bind-address는 반드시 바꿔줘야만 한다. 127.0.0.1은 말 그대로 localhost에서만 접속이 가능하다는 의미이니 0.0.0.0 으로 바꿔주도록 하자.

 

 

 


2. User & Host 권한 변경

// MariaDB 접속
$ sudo su -
$ mysql -u root -p


// 권한 확인
mysql> use mysql;
mysql> select host, user, paswor from user;

 여기서 host의 %는 전부를 뜻한다. localhost가 아니어도 접속이 가능하다는 의미이다. 만약 host가 %이 아닌 localhost라면 user를 새롭게 생성하거나, 기존 user의 host를 변경해주는 방법 중 하나를 선택하자. 권한을 다시 한 번 변경해주는 작업은 필수다.

 

 

// 유저 생성 or 유저 변경
mysql> create user 'YOUR_USER'@'%' identified by 'YOUR_PASSWORD';
mysql> update user set host='%' where host='YOUR_HOST' and user='YOUR_USER';


// 유저 권한 변경
mysql> grant privileges on YOUR_DATABSE.* to 'YOUR_USER'@'%' with grant option;

 

설정이 완료되었다면 다음 단계로 넘어가자.

 

 

 


3. EC2 보안그룹 규칙 수정

 Nginx 설정을 했다면 EC2 Public IPv4로 접속했을 때 Nginx 메인 화면이 뜨는 것을 확인했을 것이다. 이는 EC2 인스턴스의 보안 그룹 규칙에 80포트가 접속이 허용되도록 설정되었기 때문이다. 마찬가지로 MairaDB를 사용하기 위해선 3306 포트를 외부에서 접속할 수 있도록 허용해줘야만 한다. 

 

 

인스턴스 보안 탭 > 보안 그룹 > 하단 인바운드규칙의 인바운드 규칙 편집 버튼 클릭

 

 

1. 규칙 추가 버튼 클릭

2. 유형 사용자 지정 TCP 설정

3. 포트 3306 설정

4. 소스 Anywhere IPv4 설정

5. 규칙 저장 버튼 클릭

 

 

 


4. 연결 확인

이상으로 MariaDB 외부 접속 연결을 마치겠다.

 

 

댓글