엘리스 AI트랙 4기/프로젝트

Oracle Cloud 인스턴스에 MySQL 서버 구축_2탄

남쪽마을밤송이 2022. 6. 5. 21:57

1탄에서 이어지는 내용입니다.

 (4) SSH 접속 

  • 이제 생성한 인스턴스에 SSH로 접속하여 MySQL을 설치하고 여러 설정들을 해주면 된다.
  • 먼저 이전에 설정한 인스턴스의 예약된 공용 IP를 확인한다.

  • 윈도우의 경우 PowerShell이나 CMD로 접속해도 되지만 여러모로 불편하기 때문에 나는 MobaXTerm을 사용해서 SSH에 접속할 것이다.
  • 프로그램을 실행시키고 Session - SSH를 클릭한다.

  • host와 username, private key 파일을 선택하고 OK를 누른다.
    • username은 OS마다 기본 계정이 다를텐데 일단 우분투는 ubuntu이다.
    • private key는 인스턴스를 생성할 때 저장했던 개인키 파일이다.

  • 다 정확하게 넣었다면 문제 없이 연결이 될 것이다.

 [03 MySQL ] 

 (1) MySQL 설치 

  • 설치하기 전에 우분투의 시간대를 바꿔줄 것이다.
    • 나는 이미 바꿔서 캡처를 저장해두지 못했지만 다음과 같은 명령어로 바꾸면 된다.
date # 현재 시간 확인, 아마도 UTC 기본 시간으로 설정되어 있을 것
sudo dpkg-roconfigigure tzdata # 'Asia/Seoul' 선택
  • 다음으로는 apt 패키지 관리자를 업데이트 / 업그레이드 해주었다.

  • 이제 다음 명령어로 MySQL을 설치해준다.
sudo apt-get install mysql-server
  • 다음 명령어로 정상적으로 설치되어 작동하는지 확인한다.
service mysql status

 (2) 외부 접속 가능한 user 생성 

  • 둘 중 하나의 명령어로 MySQL에 접속한다.
    • 처음에는 root 비밀번호가 설정되어 있지 않기 때문에 password는 Enter를 입력하면 된다.
sudo mysql -u root -p
sudo /usr/bin/mysql -u root -p

  • 현재 등록된 사용자들을 확인한다.
SELECT User, Host, authentication_string FROM mysql.user;
  • 외부에서 연결 가능한 사용자 계정을 생성해준다.
    • 나는 root@localhost 계정이 있어서 그런지 이유를 모르겠지만 root@% 계정 생성이 잘 되지 않아서 super라는 이름으로 생성했다.
CREATE USER 'root'@'%' IDENTIFIED VIA mysql_native_password USING PASSWORD ("password");
  • 새로 생성한 계정에 모든 권한을 부여해준다.
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
  • 등록된 사용자들 목록에서 정상적으로 추가되었는지 확인한다.

  • 그리고 DB의 변경 사항을 바로 적용하기 위해 다음 명령어를 실행한다.
flush privileges;

 (3) MySQL 설정파일 수정 

  • 이제 MySQL 설정파일을 수정해서 모든 IP에서 MySQL 서비스에 접근 가능하도록 해줘야 한다.
  • 아래 경로로 들어가 아래와 같이 두 줄을 수정한다.
    • MySQL 기준이므로 MariaDB나 다른 데이터베이스의 경우 조금씩 다름을 유의한다.
    • 제일 중요한 건 bind-address만 수정했다가 절대 절대 외부 접속이 안 되는 문제에 봉착했었다... 알고 보니 mysqlx-bind-address도 수정해줘야 한다는 것!
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

  • 수정한 내용이 반영되도록 MySQL 서비스를 재시작한다.
sudo systemctl restart mysql
  • 다음으로는 방화벽 규칙 추가부터 이어서 포스팅하겠다.