Notice
Recent Posts
Recent Comments
Link
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
Tags
more
Archives
Today
Total
관리 메뉴

지석이의 일기

5. AWS서버에 DB를 설치해서 DB서버로 만들어보자 본문

Java

5. AWS서버에 DB를 설치해서 DB서버로 만들어보자

91년도에 철산에서 태어난 최지석 2022. 3. 17. 10:47

1. 파일 다운 및 설치

서버에 먼저 mysql을 설치한다.

mysql 홈페이지에서 rpm파일을 서버에 직접 다운 받자

url : https://dev.mysql.com/downloads/repo/yum/ 

 

필자는 리눅스버전 6으로 진행했다.

리눅스 버전에 맞게 선택한뒤 하단의 다운로드 버튼의 url을 기억하자.

 

wget 명령어로 해당 다운로드 버튼 url 을 입력해준다.

$ wget https://dev.mysql.com/get/mysql80-community-release-el7-5.noarch.rpm

해당 파일이 현재의 커서위로 다운로드 되는데, 다운 받은 rpm파일을 yum localinstall "패키지"를 통해 설치한다.

$ sudo yum localinstall mysql80-community-release-el7-5.noarch.rpm

$ sudo yum install mysql-community-server

 

2. mysql 실행 및 초기 설정

전부다 설치가 됬으면, mysql을 실행해준다.

$ sudo systemctl start mysqld 

실행된것이 정상적으로 실행됬는지 확인하려면

$ sudo systemctl status mysqld

뭔가 뜨는데 정상적으로 실행된거같다.

간단하게 서버 mysql의 설정을 수정해주고 넘어가자

$ sudo  vi /etc/my.cnf

mysql 설정창을 열어 주고 맨아래 

character-set-server=utf8mb4 

collation-server=utf8mb4_unicode_ci 

skip-character-set-client-handshake

이거 정도만 넣어주고 저장하자. (3개의 줄이 개행되어야한다. 한줄로 쓰면 에러남...)

 

설정이 수정되었으므로, mysql을 재시작하자 

systemctl restart mysqld

 지금까지 서버에 db를 설치하며 생각하지 못한것이, db 아이디와 패스워드를 설정하지 않았을것이다.

mysql도 기본아이디가 존재하는데 "root"다

root의 비밀번호는 매번 다른데,

$sudo cat /var/log/mysqld.log | grep 'temporary password' 을 치면 임시 비밀번호가 나온다.

이제 실질적으로 mysql 을 실행해서 프로그램으로 들어가보자.

$ sudo mysql -u root -p

비밀번호는 위에 봣던 임시 비밀번호를 입력하면된다.

mysql 콘솔이 등장하면 정상적으로 접속한것이다...

접속에 성공했으면 root의 비밀번호를 변경하자.

$ alter user 'root'@'localhost' identified with mysql_native_password by '원하는비밀번호';

 

*만약 역기서 패스워드가 너무 간단하다며 못바꾸게 하려는 경우가 있다.

그럴땐, 패스워드 설정 정책 레벨을 낮춰주면된다.

$ SHOW VARIABLES LIKE 'validate_password%';

$ set global validate_password.policy=LOW;

이렇게 mysql 비밀번호 설정 정책레벨을 최하로 설정해주고 마음대로 비밀번호를 설정하면된다.

 

이제 root가 아닌 기본 사용자 계정을 만들고, DB스키마를 만들자.

 

계정 생성.

CREATE USER '아이디'@'로컬/외부 접속' IDENTIFIED BY '비밀번호';

 

DB스키마 생성

CREATE DATABASE DB스키마명;

 

생성 DB스키마에 계정 접속 권한 부여

GRANT ALL PRIVILEGES ON *.* to 'User명'@'%';

 

설정 저장

FLUSH PRIVILEGES;

 

** 반대로 권한을 삭제해야 한다면? REVOKE ALL ON {DB명}.* FROM '{DB USER}'@'%' 로 처리하면 된다. **

 

​여기까지 했으면 $ exit;를 치고 mysql을 빠져나와준다.

그리고 재실행

$ sudo systemctl restart mysqld

 

3. 외부에서 접근할수 있도록 AWS 설정

여기까지 서버에 mysql을 설치하여 통칭 mysql서버를 만들었다.

서버자체에 mysql db를 설치했으면, 외부에서 어떻게 접근을 할까?

일단 aws에 보안 설정을 수정해줘야한다.

 

mysql을 설치한 서버의 대시보드를 확인하고,

보안탭 선택

인바운드 규칙을 수정해서 3306(mysql기본) 포트를 추가해주자

기본적으로 잘알려진 웰노운포트라서인지 aws에서도 mysql 옵션이 존재한다.

ex)http(80), https(443), oracle(1521)....

 

여기까지 하면, aws mysql서버로 외부에서 접근이 가능하다.

디디버에서 테스트해보자

mysql 서버 생성 및 인바운드 설정, 접속테스트까지 완료.

 

 

#2023년 추가

요 근래에 다시 리눅스 서버를 만들일이 생겨서 기본셋팅으로 서버를 받았는데 버전이 

Amazon Linux2였다.

해당 버전은 기본적인 mysql 커넥터 가 설치되어 있지 않아서 위의 내용으로 따라하면 리눅스 설치단에서 에러가 날수 있다. (libsasl2.so.2가 필요하다는 둥..)

만약 본인의 리눅스 버전이 Amazon것이라면 아래와 같이 해보자.

 

1. 80대 버전의 mysql을 설치해주자.

우선 만약에 위에 버전을 설치하다가 에러 떴다면 설치된 mysql 은 삭제해주자.

설치된거 삭제해주고

sudo yum remove "설치된 버전.rpm"

 

다운로드 하고

sudo wget https://dev.mysql.com/get/mysql80-community-release-el7-5.noarch.rpm

 

설치 해주고

sudo yum install mysql80-community-release-el7-5.noarch.rpm

 

아래 명령어로 환경 셋팅

sudo amazon-linux-extras install epel -y
sudo yum -y install mysql-community-server

 

mysql 다시 설치 해주고

sudo systemctl enable --now mysqld

 

상태 확인!

systemctl status mysqld