AWS RDS 라는 서비스를 사용하면 mysql 서버를 만들 수 있지만,
돈이 많이 들기 때문에 EC2 를 이용하여 서버를 만든다.
[AWS] React project(express)를 AWS EC2에서 배포하기(with. git, putty, nginx)
위 링크로 들어가서 순서 1번 (AWS EC2 인스턴스 생성) 의 내용을 따라 진행하는데,
1.1 Amazon Machine Image(AMI) 선택 에서 Ubuntu Server 18.04 LTS 를 선택한다.
다음으로 1.6 보안 그룹 구성 에서 유형을 MYSQL/Aurora, 포트 범위를 3306, 소스를 위치 무관 으로 인바운드 규칙을 추가한다.
[AWS] React project(express)를 AWS EC2에서 배포하기(with. git, putty, nginx)
위 링크로 들어가서 순서 2번 (Putty(ssh)로 인스턴스 접속) 의 내용을 따라 진행하는데,
2.3 Putty 에서 ec2-user@{AWS의 Elastic IP 또는 IPv4 DNS} 를 ubuntu@{AWS의 퍼블릭 IPv4 DNS} 로 변경하여 접속한다.
Putty를 통해 리눅스 명령어를 활용하여 설치한다.
$ sudo su
$ apt-get update
$ apt-get install mysql-server
$ sudo systemctl start mysql.service
$ ps -ef | grep mysql
mysql workbench 를 사용하여 테이블 생성 등의 작업을 하기 위해 mysqld.cnf 파일을 수정한다.
$ cd /etc/mysql/mysql.conf.d $ sudo vi mysqld.cnf
파일로 진입하여 bind-address 가 127.0.0.1 로 되어 있는데 0.0.0.0 으로 수정한다.
$ mysql -u root -p
root 계정으로 보안 문제 등의 이유로 새 계정을 생성하여 사용한다.
create user '계정이름'@'%' identified by '비밀번호';
계정 생성 후 해당 유저가 DB 에 모든 접근 권한을 가질 수 있도록 설정한다.
grant all privileges on DB명.* to '계정이름'@'%';
그리고 설정한 접근 권한을 특정 DB 또는 모든 DB에 알린다.
flush privileges;
위 링크로 들어가 mysql Workbench 를 이용하여 mysql server 환경을 만들어놓은 AWS EC2 에 연결하고, 테이블 생성 등의 프로세스를 따라서 진행한다.
로컬 DB 를 사용하지 않고 이전에 생성한 AWS EC2 mysql server 에 연결하려면
React 프로젝트에 mysql 모듈을 설치하고
yarn add mysql
아래와 같이 작성한다.
그리고 node 명령어로 서버를 실행하면 콘솔에서 응답을 확인할 수 있다.
참고
[AWS] AWS EC2 인스턴스 (Ubuntu) 에서 MySql 세팅하기
AWS EC2에 MYSQL을 깔아서 개발에 활용해보기
[MySQL] MySQL Workbench 사용법
[Node JS] Express 웹 서버 구축하기 4 : MySQL 연동하기
node.js MySQL ER_ACCESS_DENIED_ERROR : 네이버 블로그