2023. 4. 4. 00:24ㆍServer
[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 [권한] 에 대한 자세한 설정은 아래 링크 참고
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을 실행해서 연결이 되는지 확인하기.
'Server' 카테고리의 다른 글
[Docker] Window에서 Docker Desktop 설치 후 'Docker Desktop requires a newer WSL kernel version.' 문제 해결 (0) | 2023.05.06 |
---|---|
[Docker] Docker Hub에 Pull 할때 denied: requested access to the resource is denied 에러 발생 해결 (0) | 2023.04.08 |
[Server] 외부에서 내 Localhost에 접속이 가능하다? ngrok으로 연결하기 (0) | 2022.07.30 |
[H2 DB] H2 Database & Spring Boot 무설치 연동 방법 (0) | 2022.07.17 |
[H2 DB] H2 Database & Spring Boot 연동 방법 (0) | 2022.02.28 |