[Server] Oracle Cloud - MariaDB 설치 및 DB연결

2023. 4. 4. 00:24Server

[Server] Oracle Cloud - MariaDB 설치 및 DB연결

 

저번에는 Docker에 MariaDB를 설치해서 연동하였는데 이번에는 Ubuntu에 apt로 직접 MariaDB를 설치 후 연동하려고 한다. Docker와는 조금 다릅니다.

 


세부정보

이미지: Ubuntu 22.04

DB버전 : 10.6.12-MariaDB-0ubuntu0.22.04.1


Oracle Cloud - 공용 서브넷 포트 설정 - 수신 규칙 추가

오라클 클라우드 홈페이지 > 네트워킹 > 가상 클라우드 네트워크 > VCN > 보안 목록 세부정보

| 수신 규칙 추가 - 3306에 대한 VCN 포트를 개방한다. 다른 포트로 설정할 경우 대상 포트 범위를 변경한다.

 

 

MariaDB - 설치

# apt 최신화
sudo apt update
# Server 모듈 설치
sudo apt install mariadb-server
# Client 모듈 설치
sudo apt install mariadb-client

 

MariaDB - 보안설정

# Secure 설정
sudo mysql_secure_installation

# 데이터베이스 root 암호 입력 - 아직 설정하지 않았기 때문에 - Enter(없음)

Enter currnent password for root

 

# unix_socket 연결 여부입니다. socket 연결은 하지 않기 때문에 - N or Enter

Switch to unix_socket authentication

 

# root 계정 비밀번호 설정

Change the root password

 

# 익명 계정 제거 여부 - Y

Remove anonymous users

 

# root 계정 원격 login 금지 여부 - 선택(필자는 Y)

Disallow root login remotely

 

# 테스트 데이터베이스 삭제 여부 - Y

Remove test database and access to it

 

# 반영 여부 - Y

Reload privilege tables now

 

 

MariaDB - 접속

mysql -u root -p

| root 비밀번호로 접속

 

 

MariaDB - 버전 확인

select version();

 

MariaDB - 상태 확인

service mysql status

 

 


MariaDB - DBeaver 접속(연동) 방법

Oracle Cloud에 있는 MariaDB는 그냥 연동이 되지 않는다. 포트를 개방하고 Ubuntu에서도 설정을 해야지 연동이 가능,

이런 방법은 사용하지 않으면 Connection refused: connect 에러를 접할 수 있다.

 

 

 

MariaDB - 외부접속이 가능한 root 계정(혹은 일반 계정) 생성

# 'localhost' -> 외부 접속 X
# '%' -> 외부 접속 O
CREATE USER '계정'@'%' IDENTIFIED BY '비밀번호';

| Oracle Cloud 외부에서도 접속이 가능하게 하려면 '%'으로 계정을 생성해야 한다. root계정을 외부접속 가능하게 하려면 'root'@'%'로 적으면 된다.

 

 

 

권한 설정

GRANT ALL PRIVILEGES ON 데이터베이스.* TO '계정'@'%';

 

| GRANT [권한] 에 대한 자세한 설정은 아래 링크 참고

 

Mysql/Mariadb 권한 확인 (grant / revoke)

Mysql/maria DB에서 사용하는 권한에 대해 알아보겠습니다. ​ ​ Mysql/mariad db의 권한에 대해 알아보겠습니다. ​ 1. 권한 설정 권한 설정은 유저와 host를 명확히 하여 주어야 하며 password도 설정이 가

m2seo.tistory.com

 

 

 

 

 

MariaDB - IP 및 PORT 설정

필자도 해당 부분을 설정하지 않아서 1시간 정도 고생좀 했다...

sudo vi /etc/mysql/my.cnf

| port된 부분이 #으로 주석이 되어 있을텐데 이 부분을 주석 해제 한다.

기본 3306 포트이며 변경하려면 해당 부분을 다른 port로 변경한다.

 

 

 

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

| 외부 접속 IP 설정, 기존에 bind-address = 127.0.0.1 부분을 0.0.0.0으로 변경한다.

특정 IP만 접속가능하게 하려면 해당 부분을 설정한다.

 

 

 

MariaDB - 인바운드 규칙 추가

마지막 설정이다. 인바운드 규칙을 추가해준다.

ifconfig

| 사용하고 있는 네트워크 인터페이스를 찾는다. 필자같은 경우 enp0s3이며 다를 수 있다.

 

 

 

sudo iptables -I INPUT 5 -i (네트워크) -p tcp --dport 3306 -m state --state NEW,ESTABLISHED -j ACCEPT
-> sudo iptables -I INPUT 5 -i enp0s3 -p tcp --dport 3306 -m state --state NEW,ESTABLISHED -j ACCEPT

| (네트워크)부분에 네트워크 인터페이스를 적고 인바운드 규칙을 추가한다.

 

 

설정 끝

 


MariaDB - DBeaver 연결

Server Host : Oracle Cloud IP

Port : 3306(Default)

Username : 위에서 설정한 계정

Password : 계정의 비밀번호

 

| 이후 Test Connection을 실행해서 연결이 되는지 확인하기.