본문 바로가기
IT개발

[Ubuntu] mariaDB설치 및 외부접속하기 (Ubuntu 22.04)

by 팀모 2023. 11. 20.

오늘은 ubuntu서버에 mariadb를 설치하고 외부에서 접속하는 방법에 대해 포스팅해보도록 하겠습니다.
 

1.  apt-get update

우선 mariaDB를 설치하기 위해서는 우분투 서버에 접속하셔서 apt-get를 업데이트를 해야합니다.

//apt-get 앞에 sudo를 붙이거나 super admin 계정으로 변경해서 업데이트를 해주면 됩니다. 
//방법1.
sudo apt-get update

//방법2.
sudo su
apt-get update

2.  mariaDB 설치(server + client)

apt install mariadb-server mariadb-client

 

3.  mariaDB 버전확인 (mariadb --version)

정상적으로 설치가 되었는지 확인할 수 있습니다.

mariadb --version

 

 

4.  mariaDB 접속해보기 

shell에서 mariadb라고 입력하면 mariadb에 접속하실 수 있습니다.

mariadb

 

4.  mariaDB secure 설정 (mysql_secure_installation)

MariaDB를 설치하셨다면 기본적인 보안설정을 하실 수 있습니다.
MariaDB의 root계정의 비밀번호도 여기서 변경하실 수 있습니다.

sudo mysql_secure_installation

 (mariaDB 초기 세팅시 root계정 비밀번호는 없기때문에 엔터를 치고 들어가 변경해줍니다.

 
root계정 비밀번호 설정 이외에도 secure설정에는 여러가지가 있습니다.
이 설정에 대해 간략하게 설명하고 넘어가겠습니다.
 
1. Switch to unix_socket authentication [Y/n]
유닉스 소켓이라는 인증 방식으로 전환하시겠습니까?

2. Change the root password? [Y/n] 
root 비밀번호를 변경하시겠습니까?
 
3. Remove anonymous users? [Y/n] 
anonymous 계정을 지우시겠습니까?
 
4. Disallow root login remotely? [Y/n] 
root사용자의 원격접속을 차단하시겠습니까?(Y일경우 localhost이외의 다른ip접속 허용 불가)

5. Remove test database and access to it? [Y/n]
test db를 지우시겠습니까?
 
6. Reload privilege tables now? [Y/n] 
바로 적용하시겠습니까?

 

5.  mariaDB 데이터베이스 생성 (CREATE DATABASE 데이터베이스명;)

--db생성
CREATE DATABASE mocaerp;
--db 보기
SHOW DATABASES;

 

6.  mariaDB 계정생성 ( create user '사용자명'@'%' identified by '지정할password'; )

create user '사용자명'@'%' identified by '[지정할비밀번호]';

 

7.  생성된 계정 권한설정

'teammoca'라고 생성된 계정을 데이터베이스 'mocaerp'의 모든 권한을 허용해줄 수 있습니다.

grant all privileges on mocaerp.* to 'teammoca'@'%' with grant option;

 

8. 변경사항 저장(flush privileges;)

flush privileges;

 

9. 외부에서 mariaDB 접속하기 (HeidiSQL을 통해 mariaDB접속해보기)

이번에는 외부에서 mariaDB를 접속해보도록 하겠습니다.
접속툴은 HeidiSQL툴을 이용해보도록 하겠습니다.
 

9-1. PORT 3306 방화벽허용

우선 방화벽을 개방해주어야 합니다. mariaDB는 설치할경우 기본포트가 3306로 세팅됩니다.
그러므로 3306포트를 열어주어야 합니다.
 
저희는 AWS EC2를 이용해 Ubuntu서버가 만들어져있기때문에 aws의 보안그룹에서 3306포트를 설정해줍니다.

 
shell에선 ufw allow 3306/tcp 로 허용해줍니다.

sudo ufw allow 3306/tcp

 

9-2.  bind address설정( /etc/mysql/mariadb.conf.d/50-server.cnf 파일 수정)

 sudo vi /etc/mysql/mariadb.conf.d/50-server.cnf

bind-address란 데이터베이스 서버가 어떤 주소로의 요청을 허용할 것인지 설정하는 걸 의미합니다.
0.0.0.0을 설정하게 되면 네트워크의  모든 트래픽에 대해서 요청을 허용한다는 뜻이기에 문제없이 원격 커넥션이 이루어질 수 있습니다.

50-server.cnf 파일에서 bind-address수정

9-2.  MariaDB 서버 재시작 (mariadb restart)

여러 설정을 마쳤다면 mariadb 서버를 재시작해주어야 합니다.

 

9-3.  MariaDB 서버 외부접속해보기(HeidiSQL)

9-2까지 환경설정을 마쳤다면 이제는 외부에서 접속해보겠습니다.
저희는 HeidiSQL툴을 이용하여 접속해보겠습니다.
네트워크유형: MariaDB or MySQL (TCP/IP)
Library : libmariadb.dll
호스트명 : 퍼블릭 IPv4 주소 또는 url
사용자 : 접속할 계정 (저희는 아까 만들어두었던 계정 'teammoca'라는 계정을 이용해 접속해보겠습니다.)
포트 : 3306 (default)

aws EC2 인스턴스의 퍼블릭IPv4 주소

 
 
아래와 같이 정상적으로 접속하실 수 있습니다.