지석이의 일기
5. AWS서버에 DB를 설치해서 DB서버로 만들어보자 본문
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
'Java' 카테고리의 다른 글
로그백 Logback과 log4jdbc 로그파일로 적재해보자. (0) | 2023.01.28 |
---|---|
Spring Boot 의 DB에서 조회뒤 view로 넘겨보자 (0) | 2023.01.15 |
Spring Boot 프로젝트에 Mysql연결하기 (0) | 2022.03.17 |
AWS 서버에 스프링 부트 프로젝트를 올려서 구동시켜보자. (0) | 2021.07.11 |
Spring boot 프로젝트를 생성하고, AWS 서버에 올려보자 (0) | 2021.07.11 |