# 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 프로그램에서 접근하기 위한 커넥션 정보를 입력하자.
- 정상적으로 커넥션이 된 것을 확인 할 수있다.
'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 |