안녕하세요. 가야태자 @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
위 블로그에서
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
Upvoted! Thank you for supporting witness @jswit.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit