포스팅큐레이션, 자바이야기 007. Oracle Cloud에 MySQL 설치하기

in hive-161316 •  2 days ago 

image.png

안녕하세요. 가야태자 @talkit 입니다.

지난 번 글까지 따라 하셨으면, 사이트가 열린 것 까지 보셨나요.

그런데 지난번 글에서 이야기 한대로, 기본 프로그램은 Java 내장 데이터베이스를 사용하고 있어서 저희가 사용하려고 하는 MySQL 데이터베이스로 변경 해야 합니다.

오늘은 팀에서 공용으로 사용할 수 있는 MySQL 서버를 Oracle 클라우드에 설치 하겠습니다.

지난 번에 Oracle MySQL IaaS 설정하지 않았냐?

네 했습니다.

저는 개발자여서 네트워크를 잘 모릅니다. 그래서 접속하게 하려고 공인 IP를 찾았는데 ^^ 해당 섭버는 공인 아이피가 없고 가상 아이피만 존재 했습니다.

그래서 찾아 보니 VPN 관련 설정을 하고 몇가지를 해주면 가능하다 인데

이부분은 제 전문분야는 아니어서 차근 차근 공부해보려고 합니다.

MySQL의 포트인 3306번 같은 경우에는 보안이 중요하므로 VCN에서 특정 아이피로 제한 하려고 합니다.

그리고, 사용자 단에 IP를 또 제어 합니다. ^^

서두는 이만하고, 실제로 설치 해보겠습니다.

Ubuntu MySQL 서버 설치

sudo apt update
sudo apt install mysql-server -y

우분투에서 MySQL 설치는 위와 같이 너무 간단 합니다. ^^

물론 비밀번호는 넣어 주셔야 할 수도 있습니다.

일단 저는 설치는 끝났습니다.

MySQL 서버 설정

sudo mysql_secure_installation

1 강력한 패스워드를 사용할꺼냐? Y

2 어느정도 가능 하게 할꺼냐? 1 MEDIUM

3 익명 사용자를 삭제 할꺼냐? Y

4 root(수퍼유져) 게정을 원격에서 접속할 수 있게 하거나? N

5 test 데이터베이스를 삭제 할꺼냐? Y

6 권한 테이블을 리로드 할까요? Y

설정도 이렇게 하면 다 끝났습니다.

MySQL 서버 상태 확인

sudo systemctl status mysql
ubuntu@instance-20250105-2029:~$ sudo systemctl status mysql
● mysql.service - MySQL Community Server
     Loaded: loaded (/usr/lib/systemd/system/mysql.service; enabled; preset: enabled)
     Active: active (running) since Fri 2025-02-07 07:14:29 UTC; 5min ago
    Process: 96401 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
   Main PID: 96410 (mysqld)
     Status: "Server is operational"
      Tasks: 38 (limit: 1086)
     Memory: 361.4M (peak: 378.3M)
        CPU: 4.648s
     CGroup: /system.slice/mysql.service
             └─96410 /usr/sbin/mysqld

Feb 07 07:14:27 instance-20250105-2029 systemd[1]: Starting mysql.service - MySQL Community Server...
Feb 07 07:14:29 instance-20250105-2029 systemd[1]: Started mysql.service - MySQL Community Server.

저는 잘 실행 되어 있습니다.

혹시나 실행이 안되었으면

sudo systemctl start mysql

서버를 재시작 할때 자동으로 켜게 하려면

sudo systemctl enable mysql

저는 귀찮아서 저걸 켭니다. ^^

MySQL에 root로 접속

sudo mysql 

추후에 비밀번호를 셋팅 했으면

sudo mysql -u root -p

원격접속 허용 및 계정 생성

저희는 개발자들이 붙어서 사용해야 되서 원격 접속을 허용 해야 합니다.

sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
bind-address            = 127.0.0.1 

위 부분을 찾아서

bind-address            = 0.0.0.0

으로 변경 해주세요.

CREATE USER 'username'@'특정IP' IDENTIFIED BY 'password'; -- 아이디 생성
CREATE DATABASE steemit_postings; -- 특정 데이터베이스 생성
GRANT ALL PRIVILEGES ON steemit_postings.* TO 'username'@'특정아IP' WITH GRANT OPTION;  -- 특정데이터베이스에 사용자 아이디 권한 추가
FLUSH PRIVILEGES; -- 권한 재시작

일단 사용자를 하나 만들어야 해서 위와 같이 명령어를 쳐줬습니다.

컴퓨터에서 서버에 접속 해보기

Oracle Ubuntu 서버 MySQL에 접속이 안되서 확인 해보니 T.T

Oracle Cloud 인스턴스 MySQL 설치

위 블로그에서

sudo iptables -I INPUT 6 -m state --state NEW -p tcp --dport 3306 -j ACCEPT
sudo netfilter-persistent save  


# netfilter-persistent save 안되는 경우
$ sudo apt install -y netfilter-persistent

위 명령어로 방화벽을 해제해 줘야 한다고 합니다. ^^

두번째는 서버가 껏다 켜저도 가능하도록 ^^ 해 줍니다.

저는 외부 방화벽 관련해서는 풀어 놔가지고 다음에 지금 잘 됩니다.

맺음말

이제 접속을 했으니 저기에 테이블을 만들고, 개발을 하면 됩니다.

그런데 저는 저 데이터베이스를 개발 DB로 사용할 계획인데, steemit_postings가 운영되는 MySQL Iaas와 어떻게 복제 할지를 고민 해봐야겠습니다.

감사합니다.


Write Once, reward forever via EverSteem app

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

Upvoted! Thank you for supporting witness @jswit.