domsam - IT 기술 블로그

#05 Oracle Cloud Free Tier - DB 본문

OS/Linux

#05 Oracle Cloud Free Tier - DB

domsam 2025. 10. 13. 18:07
반응형

퍼블릭 IP주소 확인

햄버거 버튼 > 컴퓨트 > 인스턴스

 

구획을 DB로 변경한다.

 

퍼블릭 IP를 확인한다.

 

티어 접속

$ ssh -i "~.key" ubuntu@퍼블릭IP

 

root 비밀번호 변경

$ sudo passwd

 

패키지 목록 업데이트

현재 source와 비교하여 버전정보 업데이트

$ sudo apt update

버전정보에 맞게 업그레이드 -y 는 yes 라는 의미이며 중간에 yes/no 물어보는 상황에서 모두 Yes처리를 한다는 의미이다.
$ sudo apt upgrade -y

 

MariaDB 설치

$ sudo apt install mariadb-server -y

 

MariaDB 서비스 상태 확인

$ sudo systemctl status mariadb

상태가 active (running) 이면 정상입니다.

 

재부팅시 MariaDB 자동 시작

$ sudo systemctl enable mariadb

 

보안설정

$ sudo mysql_secure_installation

진행 중 나오는 질문 예시 👇

  • Enter current password for root: → 그냥 Enter (초기엔 비밀번호 없음)
  • Switch to unix_socket authentication? → n ( 유닉스 소켓이라는 인증 방식으로 전환할 것인지 물어보는 질문 )
  • Set root password? → y 입력 후 비밀번호 설정
  • 나머지는 기본적으로 y 권장 (불필요한 사용자 삭제, 원격 root 로그인 차단 등)

 

접속

$ sudo mysql -uroot -p

 

새로운 사용자 생성

 

외부 접속용 사용자 생성

> create user '새로운 사용자 아이디'@'%' identified by '비밀번호';

> create user 'green'@'%' identified by 'green502';

 

새로운 사용자 모든 권한 부여

> GRANT ALL PRIVILEGES ON *.* TO '새로운 사용자 아이디'@'%'; 

> grant all privileges on *.* to 'green'@'%';

 

적용

> flush privileges;

 

HeidiSQL에서 접속

SSH로 접속 한 뒤 로컬에서 MySQL접속하는 것과 같은 효과가 난다.

신규 세션을 만들고 아래와 같이 세팅한다.

[ 설정 탭 ]
네트워크 유형: MariaDB or MySQL (SSH tunnel)
호스트명 / IP: localhost
암호: 비밀번호 입력
포트: 3306

 

[ SSH 터널 탭 ] 
(체크) Use SSH tunnel
SSH 실행 파일: ssh.exe (plink.exe 는 ppk 키 파일을 따로 생성해야 함)
SSH 호스트: 퍼블릭IP
포트: 22
사용자 이름: ubuntu
암호: (빈칸)
개인 키 파일: .key파일 선택
로컬 포트: 사용하지 않는 포트번호 설정 (3307~3309 사이)

 

위 내용을 저장하고 [ 열기 ] 버튼을 눌러 접속 시도해 본다.

 

위와 같은 모달창이 뜨면 예(Y) 버튼을 클릭

 

mariadb 원격접속 허용

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

편집기로 127.0.0.1을 0.0.0.0으로 변경

# bind-address = 127.0.0.1
bind-address = 0.0.0.0

 

mariadb 재시작

$ sudo systemctl restart mariadb

 

방화벽 허용

포트 3306을 열었더라도, REJECT가 기본 차단 역할을 하고 있어서 VCN 내부 접근이 막히는 상황입니다.
문제되는 규칙 제거

$ sudo iptables -D INPUT -j REJECT --reject-with icmp-host-prohibited

 

3306 포트 허용 규칙 추가

$ sudo iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
$ sudo iptables -A OUTPUT -p tcp --sport 3306 -j ACCEPT

 

OS 재부팅 되어도 iptables 데이터 유지시키기

$ sudo apt install iptables-persistent -y
$ sudo netfilter-persistent save

 

서비스 인스턴스 접속해서 

$ nc -zv ${DB 인스턴스 내부 IP} 3306
$ nc -zv 10.0.0.49 3306

Connection to 10.0.0.49 3306 port [tcp/mysql] succeeded!

성공 메세지가 뜨면 된다.