[DB] Oracle Cloud DB – Mysql 접속 –

MySql을 쓰는데 다른 사람들과 같이 쓸 일이 생겨 Oracle Cloud로 서버를 만들게 되었다. 찾는 과정이 힘들었어서 후에 쓸 일이 생기면 참고하기 위해 기록한다. Oracle Cloud DB를 Mysql workbench에서 접속하기 위해 사용하게 되었다.

1. Oracle Cloud 회원가입 및 로그인

OracleSignUp1

“Start for free” 클릭 이후 쭉 진행

OracleSignUp2

계정 정보 기입. 이메일 작성 후 내 전자메일 확인 클릭.

OracleSignUp3
OracleSignUp4

나머지 계정 정보 기입.

OracleSignUp5

OracleSignUp6

결제 정보 기입

Login

로그인

2. Oracle Instance 생성

로그인 후 Oracle 메인화면에서 왼쪽 위 버튼 클릭

OracleMain1

이후 컴퓨트 – 인스턴스

인스턴스 생성

Instance1

에서 편집 클릭

image

이미지 변경 클릭

image-1
  • CentOS -> CentOS 8 Stream
  • Shape – VM.Standard.E2.1.Micro
image-3

SSH 키 저장[프라이빗, 퍼블릭 둘 다] (따로 SSH키를 발급받아 붙여넣어도 됨.)

3. Oracle VM 구축

왼쪽 위 메뉴 버튼 -> 네트워킹 -> 가상 클라우드 네트워크

image-4

이름 링크 클릭

image-6

서브넷 링크 클릭

image-7
image-8

보안목록 링크 클릭

수신 규칙 2개 추가

수신 규칙 설정

수신 규칙 1
소스 유형 소스 CIDR IP 프로토콜 소스 포트 범위 (Optional) 대상 포트 범위(Optional) 설명(Optional)
CIDR 0.0.0.0/0 TCP 모두 (BLANK) 33060 BLANK
수신 규칙 2
소스 유형 소스 CIDR IP 프로토콜 소스 포트 범위 (Optional) 대상 포트 범위(Optional) 설명(Optional)
CIDR 0.0.0.0/0 TCP 모두 (BLANK) 3306 BLANK
image-9

4. DB 시스템 생성

왼쪽 위 메뉴 클릭 -> 데이터베이스 -> DB 시스템 클릭

image-10

DB 시스템 생성 클릭

image-11

Always Free 클릭

image-12

관리자 인증서 생성 기입

image-13

독립형 시스템으로 설정

image-14

5. 자율 운영 데이터베이스 생성

왼쪽 위 버튼 클릭 -> Oracle Database -> 자율운영 데이터베이스

image-15

자율운영 데이터베이스 생성 클릭

image-16

트랜잭션 처리 선택

image-17

관리자 인증서 기입

image-18

– Oracle 서버 세팅 끝 –

6. Oracle Cloud와 MySQL 연동

6-1. Putty 연결

서버와 SSH 통신을 위해 Windows 경우 Putty 등 방법을 사용. Mac은 터미널에서 가능.

6-2. 필수 파일 설치

Puttygen (Putty Key 생성)

Putty (SSH 연결 지원)

6-3. Putty gen 실행

Putty gen에서 아까 발급 받은 SSH 키를 모든 파일 선택 후 “Load” 눌러서 불러오기.
이후에 “Save primary key” 으로 생성된 ppk 파일 저장.(경로에 한글x | 본인은 텍스트 파일로 생성 후 확장자 변경함)

image-3

6-4. Putty 실행

image

Host Name (or IP address)에 인스턴스에 있는 “인스턴스 엑세스” 부분에서 퍼블릭 IP주소 기입하고 “Saved Sessions”에 원하는 이름 기입(사용자 이름도 기억)

이후에 Category에서 SSH – Auth – Credentials로 이동, Private key file for authentication에 아까 생성한 ppk 파일 넣기.

image-1

만약 아래 창이 나타나면 “Connect Once” 클릭

image-2

아래 창이 나타나면 인스턴스에 있던 사용자 이름 기입

image-4

– 7. MySql 설치 시작 –

만약 진행 중 아래 오류 발생 시 여기서 해결.

Failed loading plugin "osmplugin": No module named 'librepo' 
Error: Failed to download metadata for repo 'appstream': Cannot prepare internal mirrorlist: No URLs in mirrorlist

7-1. 루트 권한 얻기

sudo -s

7-2. MySQL 설치

wget http://repo.mysql.com/mysql80-community-release-el7-1.noarch.rpm

sudo rpm -ivh mysql80-community-release-el7-1.noarch.rpm

rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

sudo yum install mysql-server

아래 화면처럼 나오면 성공

================================================================================
Package Arch Version Repo Size
================================================================================
Installing:
mysql-server x86_64 8.0.26-1.module_el8.4.0+915+de215114
appstream 25 M
Installing dependencies:
mariadb-connector-c-config
noarch 3.1.11-2.el8_3 appstream 15 k
mecab x86_64 0.996-1.module_el8.4.0+589+11e12751.9
appstream 393 k
mysql x86_64 8.0.26-1.module_el8.4.0+915+de215114
appstream 12 M
mysql-common x86_64 8.0.26-1.module_el8.4.0+915+de215114
mysql-errmsg x86_64 8.0.26-1.module_el8.4.0+915+de215114
.
.
.

7-3. MySql 실행 및 상태 확인

systemctl start mysqld

systemctl status mysqld

성공 시 active (running) 출력.

mysqld.service - MySQL 8.0 database server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; disabled; vendor preset: disabled)
Active: active (running) since Mon 2024-09-30 11:18:29 KST; 5s ago
Process: 75514 ExecStartPost=/usr/libexec/mysql-check-upgrade (code=exited, status=0/SUCCESS)
Process: 75387 ExecStartPre=/usr/libexec/mysql-prepare-db-dir mysqld.service (code=exited, status=0/SUCCESS)
Main PID: 75468 (mysqld)
Status: "Server is operational"
Tasks: 38 (limit: 4168)
Memory: 424.0M
CGroup: /system.slice/mysqld.service
└─75468 /usr/libexec/mysqld --basedir=/usr

7-4. 임시 비밀번호 확인

grep 'temporary password' /var/log/mysqld.log

위 코드 입력 시 임시 비밀번호 출력. 안나와도 아래 과정 진행에 문제 없음 (blank password)

7-5. MySql 보안설정

/usr/bin/mysql_secure_installation

Securing the MySQL server deployment.

  • Enter current password for root (enter for none): 임시 비밀번호를 입력합니다.
    • LOW: 최소 8자 이상.
    • MEDIUM: 최소 8자 이상, 숫자, 대문자와 소문자 혼합, 특수 문자 포함.
    • STRONG: 최소 8자 이상, 숫자, 대문자와 소문자 혼합, 특수 문자 포함, 사전 단어 사용 금지.
  • Set root password? [Y/n]: root 비밀번호 설정 여부. -> Y
  • New password: 설정할 비밀번호 입력.
  • Re-enter new password: 다시 입력.
  • Do you wish to continue with the password provided?: 제공된 비밀번호로 계속 진행 여부. -> Y
  • Remove anonymous users? [Y/n]: 익명 사용자 로그인 차단 여부. -> Y
  • Disallow root login remotely? [Y/n]: root 사용자 원격 접속 차단 여부. -> Y
  • Remove test database and access to it?: Test DB를 삭제. -> Y

7-6. 방화벽 설정 여부

firewall-cmd --zone=public --permanent --add-service=mysql

systemctl restart firewalld.service

7-7. Mysql root 계정 접속

mysql -uroot -p

7-8. 사용자, Database 생성 예시

-- testdb 생성
CREATE DATABASE testdb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

-- test 계정 생성
CREATE USER 'tester'@'%' IDENTIFIED BY 'testUserPW123!';

-- testdb에 대한 권한 부여
GRANT ALL PRIVILEGES ON testdb.* TO 'tester99'@'%' WITH GRANT OPTION;

-- 권한 새로고침
flush privileges;

8. Mysql workbench 접속

image 11

에서 “MySQL Connections” 옆에 +버튼 클릭

image 12

위에서 생성한 ‘tester99’를 ‘Username’에, ‘testUserPW123!’를 ‘Store in Vault’를 눌러 비밀번호로 넣어준다. ‘Connection Name’은 자유.
‘Hostname’에는 인스턴스에 있던 IP주소를 넣어주고 OK 하면 끝.

참고

댓글 남기기

광고 차단 알림

광고 클릭 제한을 초과하여 광고가 차단되었습니다.

단시간에 반복적인 광고 클릭은 시스템에 의해 감지되며, IP가 수집되어 사이트 관리자가 확인 가능합니다.