개발 => 복습 후 재정리 대기/AWS
[AWS] Node.js, MySQL 환경 구축
1. ec2 구매
2. ec2 접속
- git bash 실행
- sudo chmod 400 키페어
- ssh -i 키페어 ubuntu@aws ip
- Node 설치
curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
sudo apt-get install -y nodejs
node -v와 npm -v를 통해 제대로 설치되었는지 확인하자.
3. mysql을 설치
sudo apt-get update
sudo apt-get install -y mysql-server
sudo mysql_secure_installation
4. git clone 주소 로 프로젝트 클론
5. 프로젝트 폴더 안에서 npm i로 package 설치
6. sudo npx sequelize db:create —env production으로 DB를 생성
이 때 오류 발생.
오류:
Access denied for user 'root@'@'localhost'
원인:
기본적으로 초기설정되어있는 mysql의 root 계정의 패스워드 타입때문에 발생한 오류
해결방안:
$ sudo mysql -u root
mysql> USE mysql;
mysql> SELECT User, Host, plugin FROM mysql.user;
mysql> update user set plugin='mysql_native_password' where user='root';
mysql> flush privileges;
mysql> select user, host, plugin from user;
7. 80포트로 들어오는 방문 객을 3000번 포트로 보내기
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3000
8. sudo npm start
오류 발생
오류:
Access denied for user 'root'@'localhost' (using password: YES)
원인:
root 사용자의 비밀번호가 맞지 않아서 발생한 오류
해결방안:
user 테이블의 password 컬럼을 update해주면 되는데,
내가 만든 ec2에 있는 mysql의 user테이블에는 password라는 column이 없었다.
대신, authentication_string이라는 필드가 있고, 이 컬럼이 password column을 대신한다.
그래서 다음과 같이
mysql> update user set authentication_string=password('1234') where user='root';
쿼리를 날리고 나니 정상 작동을 한다.
'개발 => 복습 후 재정리 대기 > AWS' 카테고리의 다른 글
[AWS] Timezone 설정 (AWS 서버 시간 바꾸기) (0) | 2022.01.09 |
---|---|
[AWS] Node.js, MongoBD 환경 구축 (0) | 2021.07.15 |
[AWS] 포트 포워딩 (0) | 2021.06.06 |
[AWS] DNS 설정 - gabia 이용 (0) | 2021.05.10 |
[AWS] nohup 설정 - 24시간 서버 돌리기 (0) | 2021.05.10 |
댓글