본문 바로가기

DB

외부에서 접근 가능하도록 mariadb bind 설정 (2)

728x90
반응형

# DBMS 프로그램 및 이클립스와 같은 프로그램에서 AWS EC2에 설치된 mariadb에 접근하기 위해서는 어떻게 해야할까?

# mariadb의 bind 설정에 대해서 알아보자.

# 추가로 기본포트로 설정된 3306은 mysql과도 겹치고 다른 DBMS 프로그램들과도 겹치므로 포트 변경 방법에 대해서도 알아보자.

- cd /etc/mysql 로 접근 후 ls -l 혹은 ll 을 입력하면 폴더 리스트를 확인 할 수 있다.

- 리스트 중 mariddb.conf.d 파일을 확인하자.

- vi mariddb.conf.d 를 입력하여 파일을 읽자.

- vi를 활용하여 파일에 접근하면 위의 메뉴가 나온다.

- 방향키를 이용하여 50-server.cnf로 옮긴후 엔터를 누르자.

- 내용을 들어가 보면, 여러가지 옵션을 설정 할 수 있는 항목들이 있다.

- 우리는 port 번호화 bind-address 항목만 살펴보자.

- 포트는 기존 3306에서 3307로 변경, bind-address는 127.0.0.1에서 0.0.0.0으로 변경하여 외부 프로그램의 접근을 허용하자.

 

# DB 사용자 접근에 대해서 알아보자

# 로컬로만 테스트를 수행한다면 문제가 되지 않겠지만, 원격 및 다수의 사용자가 권한을 가지고 작업을 하기 위해서는 설정이 필요하다. 지금 그 설정을 해보자.

 

- SELECT Host,User,plugin,authentication_string FROM mysql.user; 를 입력하여 현재 권한이 어떻게 설정 되어 있는지 확인해 보자.

- 처음 DB를 접근하면 localhost에 대한 root 권한만 조회가 될 것이다. 하지만 이게 문제인게 로컬호스트에서만 주구장창 접근을 한다면 문제가 되지 않는다. 하지만 우리는 원격에서 다수의 IP 주소가 접근을 할 수 있도록 해야하므로 호스트에 % 권한과 root 유저를 추가해보자.

- GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '패스워드'; 를 입력하면 IP에 구애받지 않고 모든 IP가 root 권한으로 접근이 가능하다는 sql 쿼리 문이다. 이렇게 하면 외부 IP가 root 권한으로 DB에 접근이 가능하다.

- 권한이 막강하므로 그리고 IP에대한 제약이 없으므로 추천하지 않는다.

- 또 다른 방법은,

NSERT INTO mysql.user (host,user,authentication_string,ssl_cipher, x509_issuer, x509_subject) VALUES ('%','아이디',password('패스워드'),'','',''); GRANT ALL PRIVILEGES ON *.* TO '아이디'@'%'; FLUSH PRIVILEGES;

- 위의 쿼리문을 입력하여 접근을 허용하도록 하는것이다. 이방법을 추천하는게 접근 권한을 직접 설정 할 수가 있다.

- 다시한번 조회를 해보면 모든 호스트 %에 대해 root, 아이디 유저가 접근이 가능한것을 확인 할 수있다.

- 이렇게 설정이 되어 있어야 외부에서 DB로 접근이 가능하다.

- 좀 더 디테일하게 접근을 허용하고자 한다면 Host를 대역대로 나눈다든지 등등의 추가 작업을 수행해야 한다.

-외부 DBMS 프로그램에서 접근하기 위한 커넥션 정보를 입력하자.

- 정상적으로 커넥션이 된 것을 확인 할 수있다.

728x90
반응형

'DB' 카테고리의 다른 글

PK와 FK의 관계  (0) 2022.04.19
Local 환경에 My-sql 설치 (windows 10)  (0) 2022.01.17
mariadb 설치 및 테이블 생성(1)  (0) 2021.05.21
서비스 DB 데이터를 AWS DB로 마이그레이션  (0) 2021.03.09