無테고리 인생살이

Ubuntu 원격 서버에 MySQL 서버 설치 & 외부에서 Workbench로 DB 접속 본문

gift-card-flea-market

Ubuntu 원격 서버에 MySQL 서버 설치 & 외부에서 Workbench로 DB 접속

無격 2023. 6. 23. 14:26
  • 원격 서버 준비
  • 원격 서버에 MySQL 설치
  • 외부에서 MySQL 접속

 


 

Ubuntu 원격 서버에 MySQL 설치를 위한 준비

 

네이버 클라우드 플랫폼에서 리눅스 ubuntu-18.04 버전의 서버를 설치했습니다.

 

터미널 프로그램인 Putty를 사용해서 해당 Ubuntu 서버에 원격 접속을 하기 위해,

먼저 포트 포워딩 설정을 해야합니다.

 

포트 포워딩은 외부에서 개별 서버에 접속할 때 필요한 서버 포트 번호를 설정하는 것을 의미하고

Ubuntu 서버의 외부 포트를 8001로 설정했습니다.

 

putty 프로그램으로 우분투 서버에 원격 접속

 

서버 접속 아이디, 비밀번호 입력

원격 접속 성공


Ubuntu 원격 서버에 MySQL 설치

1. MySQL 설치

: apt install mysql-server

MySQL 설치

 

2. 버전 체크

: mysql --version

버전 : 5.7.42

3. 실행 여부 체크

: service mysql status 

active (실행 중)

 

4. 서버 재시작 시, MySQL 자동 실행되도록 설정

: systemctl mysql enable 

 

 

5. MySQL 접속 및 확인

: mysql -u root -p

접속 성공 및 확인


외부에서 Ubuntu 원격 서버에 설치된 MySQL 접속

로컬에 설치된 MySQL Workbench로 Ubuntu 원격 서버에 설치된 MySQL 서버에 접근하는 과정을 설명하고자 합니다.

MySQL 외부 접속 가이드 라인

출처 : https://guide.ncloud-docs.com/docs/database-database-1-1  (네이버 클라우드 플랫폼)

 

위 2번(계정 권한 부여)에 관한 추가 설명

 

Q. 계정에 권한을 부여해야하는 이유는?

: MySQL은 보안 상의 이유로 기본적으로 localhost에서만 접속이 허용되도록 설정되어 있습니다. 그러므로, 외부에서 특정 계정으로 MySQL 서버에 접속하기 위해서는 해당 계정에 외부에서 원격 접속할 수 있는 권한을 부여해야 합니다. '%'는 모든 호스트에서 해당 계정에 접속할 수 있도록 허용하는 것을 의미합니다.

 

 

위 3,4번( mysql 환경 설정 파일에서 bind-address 주석처리)에 관한 추가 설명

 

Q. mysql 환경 설정 파일에서 bind-address를 주석 처리해야하는 이유는?

: MySQL 서버는 기본으로 localhost에만 바인딩되어 있어 외부에서의 접속을 허용하지 않습니다. mysql 환경 설정 파일에서 'bind-address = 127.0.0.1'을 주석처리 하게 되면 bind-address가 자동 0.0.0.0이 되어 MySQL 서버가 모든 외부 IP 주소에 바인딩됩니다.

 

 

 

1. MySQL DB 접속

: mysql -u root -p

 

2. 계정 권한 부여 및 확인

: GRANT ALL PRIVILEGES ON *.* to 'root'@'%' IDENTIFIED BY '계정 비밀번호';

계정 권한 부여
확인

 

3. 환경 파일 수정 (= bind-address 주석 처리)

: vi /etc/mysql/mysql.conf.d/mysqld.cnf

MySQL의 기본 바인딩 IP 주소는 localhost

: 주석 처리

주석 처리 -> 자동 0.0.0.0 (=모든 외부 접근 허용)

알파벳 i (insert) 를 눌러 bind-address 주석 처리하고, ':wq + Enter'로 수정한 내용을 저장합니다.

 

4. MySQL 재시작 및 수정된 bind-address 확인

: service mysql restart

: netstat -ntlp | grep mysqld

0.0.0.0으로 수정 완료

5. 로컬 Workbench에서 MySQL 서버에 접속

접속 성공