반응형

1. Maria DB 설치

많고 많은 DB 중에서 Maria DB 를 선택한 이유는 실제 운영을 염두하여 비용이 들지않게 하기 위하여 선택했다.

 

 

1) APT 업데이트

Maria DB 설치에 앞서 시스템 업데이트를 해줄필요가 있다

 

apt ?
Advanced Package Tool의 약자, 리눅스 시스템에서 소프트웨어 패키지를 설치/업데이트/제거 하는 명령어와 관리도구

 

소프트웨어를 리눅스서버에 설치하기에 앞서 업데이트를 해주는게 좋다

 

$ sudo apt update

 

2) Maria DB install

이제 실제 Maria DB를 다운로드 한다

 

$ sudo apt-get install -y mariadb-server

$ sudo apt install -y mariadb-server

 

3) 비밀번호 설정

ROOT 계정의 비밀번호를 설정한다

$ sudo mysql_secure_installation

 

커맨드를 입력하면 아래와 같은 선택창이 나온다
차례대로 본인에게 맞는 설정을 선택한다

Switch to unix_socket authentication [Y/n]
-> 패스워드를 사용하기위해 N
Change the root password? [Y/n] Y
-> 패스워드 변경을 위해 Y
Remove anonymous users? [Y/n] Y
-> 보안을 위해 익명사용자 제거 Y
Disallow root login remotely? [Y/n] n
r-> oot 계정 원격접속 필요 시 N, 아니면 Y
Remove test database and access to it? [Y/n] Y
-> test DB를 유지하려면 N
Reload privilege tables now? [Y/n] Y
-> 지금까지 설정한 내용 적용하려면 Y

 

ROOT 계정설정이 완료되었다
실제로 외부에서 접근하려면 root 계정을 그대로 쓰는것보다 새로운 계정을 하나 만들고 그것을 사용하는게 좋다

 

2. DB 외부 접근 설정

개발툴 등 외부에서 접근하기위한 user를 생성한다

 

1) 외부접근 계정생성

아래 커맨드로 mysql에 접속한다

$ sudo mysql

 

접속되었으면 계정을 생성한다

mysql> create user '아이디'@'%' identified by '비밀번호';
mysql> grant all privileges on *.* to '아이디'@'%' with grant option;

 

위 커맨드를 한줄씩 입력하면되고, 아이디/비밀번호는 본인이 설정하면된다
그리고 다른 커맨드와 다르게 세미클론을 꼭 붙여준다

 

아래는 예시이다

 

아이디 : aaa
비밀번호 : aaa!!

 

mysql> create user 'aaa'@'%' identified by 'aaa!!!';
mysql> grant all privileges on *.* to 'aaa'@'%' with grant option;

 

2) 외부접근 가능포트 설정

외부접근용 계정을 생성하였으니, 외부에서 접근하기위하여 접근가능포트 설정을 해야한다

우선 아래 커맨드로 DB 접속을 해제한다

mysql> exit

 

해당 DB를 외부에서도 접근하기 위한 포트설정이 필요하다

$ sudo ufw allow out 3306/tcp
$ sudo ufw allow in 3306/tcp

 

위 2개의 커맨드를 입력했을때 Rules update 나오면 성공이다

 

3) 접근 가능 ip 수정

포트를 뚫었어도 접근 ip설정도 같이 수정해야한다.

아래의 커맨드로 mysqld 설정을 확인한다

$ mysqld --print-defaults

 

아래와 같은 화면이 보일것이다

--bind-address=127.0.0.1 라는 구문이 있는데 이것은 로컬서버에서만 접근한다는 설정이다


따라서 이것을 전체접근가능으로 변경해주어야한다

설정을 변경하기위하여 아래 커맨드로 config 파일을 편집한다

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

 

해당 커맨드 입력하면  아래와 같이 확인될것이다

여기서 변경할것 2가지 이다

  • bind-address -> 0.0.0.0
  • mysqld 밑에 lower_case_table_names = 1 추가 (테이블 대소문자 구분안함 설정)

아래와 같이 변경해준다

 

해당 설정을 적용시키기 위하여 DB 재시작한다

$ sudo systemctl restart mysqld

 

그리고 설정이 잘 적용되었는지 확인한다

$ mysqld --print-defaults

 

4) Database 생성

만약 테스트 db 말고 별도 DB를 생성하고 싶다면 아래와 같은 과정을 따른다

$ sudo mysql
mysql> show databases;

 

DB에 접속하여 database 목록을 확인한다

기존 database 이름과 겹치지않도록 주의하여 새로운 database를 생성한다

mysql> create database 새로운db명;

 

아래 커맨드로 제대로 생성됐는지 다시 확인해본다

mysql> show databases;

 

아래와 같이 --bind-address 가 변경된것을 확인할 수 있다

 

3.  AWS 외부 접속 설정

위와 같은 과정으로 리눅스서버의 설정은 완료하였지만 실제로 외부에서 (개발툴 등)접근하려면 AWS의 인바운드 규칙도 같이 변경해야한다

 

1) AWS 보안 인바운드 규칙 편집

규픽 편집을 위해 아래 경로로 진입한다

AWS 웹페이지 -> 콘솔 -> EC2 -> 보안그룹 -> 인스턴스명 선택 -> 인바운드 규칙 편집

 

유형 : MYSQL
프로토콜 : TCP
포트범위 : 3306
소스 : 0.0.0.0 (모든 IP접근가능)
설명 : 해당 포트에 대한 설명

 

필요에 따라 소스는 본인의 IP를 적어도되고, 다양한 규칙이 생겼을때 구분하기위하여 설명을 추가 하였다

모든것이 완료되었으면, 본인의 개발툴에서 접속이 가능한지 Test Connection 해보자

 

잘되길 바라며.. !

728x90

+ Recent posts