본문 바로가기
네이버 클라우드 플랫폼(NCP)

네이버 클라우드 플랫폼(NCP) - Application Server에 MySQL 설치 및 운용하기 & 외부에서 원격 접속하기

by 반오십 코린이 2022. 12. 31.
728x90
MySQL 설치 다운로드 링크

https://www.mysql.com/products/community/

 

MySQL :: MySQL Community Edition

MySQL Community Edition MySQL Community Edition is the freely downloadable version of the world's most popular open source database. It is available under the GPL license and is supported by a huge and active community of open source developers. The MySQL

www.mysql.com

해당 링크 클릭


CentOS는 Yum Repository를 다운로드


필자의 서버는 CentOS 7이므로 해당 버전을 다운로드.


해당 링크 주소 복사하기


MySQL Yum Repository 설치

 

sudo yum install - y (링크 주소)


레포지토리 설치 완료!


yum repolist 명령어를 통해 설치된 레포지토리를 확인할 수 있다.


MySql 본격적으로 설치

 

yum install -y mysql -server

(centos 이므로 apt-get이 아니라 yum 사용)

mysql 설치하는 명령어
성공한 모습!


MySql 서버 시작

 

systemctl enable mysqld && systemctl start mysqld && start mysqld && systemctl status mysqld

Mysql 서버 시작
성공!


임시 비밀번호 발급 받기

 

grep 'temporary password' /var/log/mysqld.log


Mysql 접속하기

 

mysql -u root -p

해당 명령어를 치고 임시 비밀번호를 입력하면 Mysql 접속 성공


root 계정 비밀번호 변경하기

 

Alter User 'root'@'localhost' identified by '바꾸고 싶은 비밀번호';

해당 명령어를 입력하여 원하는 비밀번호로 변경할 수 있다!

여기서 설정하고자 하는 비밀번호는 맨 앞자리가 대문자이고 번호와 특수문자가 필요한듯하니 참고하자.


 

Mysql의 사용자 살펴보기

 

select Host, User, plugin, authentication_string From mysql.user;

해당 명령어를 통해 Mysql 사용자를 확인할 수 있다.

유저가 모두 localhost이기 때문에 외부에서 접근이 불가하다!


외부로부터 접속 가능한 사용자 생성하기

 

  • create user '짓고 싶은 이름'@'%' identified by '짓고 싶은 비밀번호';
  • Server안에 설치한 mysql 상에 user을 만들어주는데, 외부에서 접근 가능한 user를 만들어주는 과정이다.
  • @ 다음에 '%' 에서 %는 "모든 ip로 하여금 해당 user에 접근할 수 있게 한다" 라는 의미이다.

Host: %, User: taewogi


권한 할당과 새로고침

 

방금 만든 user에게 권한 할당을 해주고, 갱신을 받기 위해서 새로고침을 진행한다.

 

grant all privileges on *.* to '유저이름'@'%';

flush privileges;


Mysql 원격 접속을 위해선 3306 포트를 열어야 함

 

포트를 열어주기 위해선 방화벽을 통해 열어줄 수 있다.

 

firewalld 설치

  • sudo yum update && sudo install firewalld

적지 않은 시간이 걸리므로 인내심을 가지고 기다리자


firewalld 실행

  • systemctl start firewalld


3306포트 영구적으로 열어주기

  • sudo firewall-cmd --permanent --zone=public --add-port=3306/tcp


포트 열었으니 갱신

  • sudo firewall-cmd --reload


방화벽 열린 port 확인하기

  • sudo firewall-cmd --list-ports

3306/tcp port가 열린 것을 확인 할 수 있다.


열린 port 확인하기

 

33060이 왜 생긴지는 모르겠지만 listen ip 부분이 저렇게 나오면 안된다.
이렇게 나와야 정상인데 어떻게 해결할 수 있을까?


my.cnf 파일 수정하기

 

이는 해당 파일을 수정하면 해결 가능하다.

다음 명령어는 my.cnf 파일 위치를 찾게 해주는 명령어이다.

해당 명령어를 입력하여 my.cnf 파일의 위치를 확인하여 수정을 진행한다.

 

 mysql --help | grep -A 1 'Default options'

vim /etc/my.cnf

(해당 위치에 있는 파일을 수정하는 명령어이다.)

다음과 같이 파일이 불러와지는데

bind-address 부분을 0.0.0.0으로 지정해주면 listen ip 부분이 해결된다.

(필자는 원래 bind-address의 디폴트 값도 없어서 새로 만들어주었다.)

 

$systemctl restart mysqld

  • bind-address를 변경한 후
  • 명령어를 통해 재시작해야된다!
  • centos7버전 재시작 명령어임

MySQL WorkBench로 원격으로 접속해보기

 

Hostname에는 발급 받은 Public IP(공인 IP)를 입력하면 된다.

Port는 아까 열어준 3306을 입력하면 된다.

Username은 아까 만들어준 외부에서 접속가능하게 만든 user의 이름을 입력한다.

store in Vaule..는 해당 user의 비밀번호를 입력하면 된다.

그럼 다음과 같이 성공했다는 문구와 함께 외부에서 접속 가능하게 환경설정을 마무리 할 수 있다.


다음과 같이 원격 접속 가능한 Connection이 생긴다.


접속 완료!

포스팅할 때 사용한 server는 반납 했으므로 걱정 안 하셔도 됩니다 ~.~
728x90