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

“Start for free” 클릭 이후 쭉 진행
계정 정보 기입. 이메일 작성 후 내 전자메일 확인 클릭.


나머지 계정 정보 기입.
결제 정보 기입

로그인
2. Oracle Instance 생성
로그인 후 Oracle 메인화면에서 왼쪽 위 버튼 클릭
이후 컴퓨트 – 인스턴스
인스턴스 생성
에서 편집 클릭
이미지 변경 클릭
- CentOS -> CentOS 8 Stream
- Shape – VM.Standard.E2.1.Micro
SSH 키 저장[프라이빗, 퍼블릭 둘 다] (따로 SSH키를 발급받아 붙여넣어도 됨.)
3. Oracle VM 구축
왼쪽 위 메뉴 버튼 -> 네트워킹 -> 가상 클라우드 네트워크
이름 링크 클릭
서브넷 링크 클릭
보안목록 링크 클릭
수신 규칙 2개 추가
수신 규칙 설정
| 수신 규칙 1 | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||
| 수신 규칙 2 | ||||||||||||
|
4. DB 시스템 생성
왼쪽 위 메뉴 클릭 -> 데이터베이스 -> DB 시스템 클릭
DB 시스템 생성 클릭
Always Free 클릭
관리자 인증서 생성 기입
독립형 시스템으로 설정
5. 자율 운영 데이터베이스 생성
왼쪽 위 버튼 클릭 -> Oracle Database -> 자율운영 데이터베이스
자율운영 데이터베이스 생성 클릭
트랜잭션 처리 선택
관리자 인증서 기입
– Oracle 서버 세팅 끝 –
6. Oracle Cloud와 MySQL 연동
6-1. Putty 연결
서버와 SSH 통신을 위해 Windows 경우 Putty 등 방법을 사용. Mac은 터미널에서 가능.
6-2. 필수 파일 설치
Puttygen (Putty Key 생성)
- 32bit: https://the.earth.li/~sgtatham/putty/latest/w32/puttygen.exe
- 64bit: https://the.earth.li/~sgtatham/putty/latest/w64/puttygen.exe
Putty (SSH 연결 지원)
- 32bit: https://the.earth.li/~sgtatham/putty/latest/w32/putty.exe
- 64bit: https://the.earth.li/~sgtatham/putty/latest/w64/putty.exe
6-3. Putty gen 실행
Putty gen에서 아까 발급 받은 SSH 키를 모든 파일 선택 후 “Load” 눌러서 불러오기.
이후에 “Save primary key” 으로 생성된 ppk 파일 저장.(경로에 한글x | 본인은 텍스트 파일로 생성 후 확장자 변경함)
6-4. Putty 실행
Host Name (or IP address)에 인스턴스에 있는 “인스턴스 엑세스” 부분에서 퍼블릭 IP주소 기입하고 “Saved Sessions”에 원하는 이름 기입(사용자 이름도 기억)
이후에 Category에서 SSH – Auth – Credentials로 이동, Private key file for authentication에 아까 생성한 ppk 파일 넣기.
만약 아래 창이 나타나면 “Connect Once” 클릭
아래 창이 나타나면 인스턴스에 있던 사용자 이름 기입
– 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 접속

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

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