AWS EC2 에 mysql 세팅하기 (amazon linux)
1. AWS 에 가입해서 로그인
각자 가입할 수 있다고 생각한다.
2. 콘솔에 접속해 인스턴스 생성
AWS 메인 페이지 상단 오른쪽에 콘솔에 로그인 버튼을 클릭해 콘솔 페이지로 이동한다.
전체 서비스 - 컴퓨팅 - EC2 를 선택한다.
왼쪽 메뉴에서 인스턴스 - 인스턴스 를 클릭한다.
상단에 파란색 인스턴스 시작 버튼을 클릭한다.
가장 상단에 Amazon Linux 를 선택한다.
원하는 사양을 선택 후 검토, 다음을 누르면 위와 같이 키 페어를 선택하는 페이지가 뜬다.
서버에 접속하기 위해 필요한 파일로 중요한 파일이다.
기존에 만든 적이 없다거나 뭔지 잘 모르겠다면 “새 키 페어 생성” 을 선택한 후 원하는 키 페어 이름을 작성하고 키 페어 다운로드 버튼을 클릭해서 키 페어 파일을 다운로드 받는다.
키 페어 파일을 다운로드 받으면 인스턴스 시작 버튼을 누를 수 있게 되며 인스턴스 시작을 눌러 인스턴스 생성을 완료한다.
터미널로 인스턴스에 접속 ssh -i <인증서이름 경로, 이름>.pem ec2-user@<서버IP>서버IP>
로 접속해주면 된다.
맥의 경우 다운로드 받은 인증서는 Downloads 폴더에 가면 있다.
터미널을 연 뒤에 Downloads 폴더로 이동하고 위에 명령어로 접속하면 접속이 된다.
3. MySQL 5.7 설치
sudo yum localinstall https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
sudo yum -y install mysql-community-server
위에 두 명령어를 차례로 복사 붙여넣기 해서 실행하면 MySQL 이 설치된다.
sudo systemctl start mysqld
이 명령어를 이용해서 mysql 데몬을 실행한다.
sudo systemctl enable mysqld
이 명령어를 이용해서 재부팅시 mysqld 가 자동으로 시작되도록 설정한다.
sudo netstat -plntu
를 사용해서 현재 3306 포트로 가 열려있는지 확인한다.
만약 3306 이 안보인다면 AWS 보안그룹에 3306번 포트를 열고
sudo systemctl restart mysqld
명령어로 mysqld 를 재실행한다.
4. MySQL 루트 패스워드 설정
sudo grep ‘temporary’ /var/log/mysqld.log
명령어를 실행하면 기본 설정된 패스워드가 보여진다.
나의 경우 rd?hY2)STqaW 였다.
이 부분을 복사한다.
mysql -u root -p
명령어로 mysql 에 접속하며 패스워드는 위에서 복사한 기본 패스워드를 붙여넣기해서 로그인에 성공했다.
ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘신규암호’;
명령어로 패스워드를 변경할 수 있다.
flush privileges;
반영하는 명령어이다.
위 두 명령어는 mysql 에 접속한 상태에서 실행해야 한다.
5. MySQL 백업 및 복구
기존 DB 가 있는 서버에서 아래 명령어를 실행해 DB 를 백업한다.
mysqldump –routines -uroot -p”디비패스워드” “백업할DB” > “파일명”.sql
“한글” 은 적절히 영문으로 변경해서 넣으면 된다.
ex)
mysqldump –routines -uroot -pabc123 real > real20201020.sql
그 뒤에 생성된 real20201020.sql 을 FTP 등을 이용해서 새로 복구할 서버로 옮긴다.
새로 생성한 DB 서버에서 데이터베이스를 만들어주어야한다.
아까처럼 mysql -u root -p 명령어를 이용해서 mysql에 접속한 뒤에 아래 명령어로 데이터베이스를 만든다.
CREATE DATABASE <백업한 데이터베이스명="">백업한>
그 뒤에 exit 로 빠져나가서 아래 명령어를 실행한다.
mysql -u유저이름 -p패스워드 DB명 < 백업파일명
6. 외부 IP 접속 허용
MySQL Workbench 등으로 접속해서 관리하거나 다른 소스에서 MySQL 에 접근해야 한다면 외부 IP 접속을 허용해야한다.
grant all privileges on . to root@’%’ IDENTIFIED BY ‘root 비밀번호’;
flush privileges;
이 명령어를 mysql 에서 하면 허용이 된다.
원본
참고
https://blog.eomsh.com/25
https://fishpoint.tistory.com/1406
https://cloudjak.tistory.com/17