git repository를 AWS EC2에 배포하기 위해, AWS EC2를 세팅하는 과정에서 발생했던 오류이다.
오류
pm2 log를 입력하여 오류 내용을 확인해보았다.
/home/ubuntu/.pm2/logs/index-error.log last 15 lines:
0|index | at Connection.handlePacket (/Do-IT/node_modules/mysql2/lib/connection.js:478:34)
0|index | at PacketParser.onPacket (/Do-IT/node_modules/mysql2/lib/connection.js:97:12)
0|index | at PacketParser.executeStart (/Do-IT/node_modules/mysql2/lib/packet_parser.js:75:16)
0|index | at Socket.<anonymous> (/Do-IT/node_modules/mysql2/lib/connection.js:104:25)
0|index | at Socket.emit (node:events:514:28)
0|index | at addChunk (node:internal/streams/readable:324:12)
0|index | at readableAddChunk (node:internal/streams/readable:297:9)
0|index | at Readable.push (node:internal/streams/readable:234:10) {
0|index | code: 'ER_ACCESS_DENIED_ERROR',
0|index | errno: 1045,
0|index | sqlState: '28000',
0|index | sqlMessage: "Access denied for user 'user'@'localhost' (using password: YES)",
0|index | sql: undefined
0|index | }
0|index | }
MySQL 데이터베이스에 대한 접근 권한이 거부된 경우 나타나는 오류 메시지이다.
1. MySQL 사용자 이름 또는 비밀번호를 잘못 입력했을 경우에 발생할 수 있다.
2. 사용자에 대한 권한이 제대로 설정되어 있지 않은 경우에 발생할 수 있다.
해결 과정
mysql -u “rds 사용자명” -p -h “rds 엔드포인트”
MySQL 클라이언트를 사용하여 Amazon RDS(Relational Database Service) 데이터베이스에 연결하는 명령어이다.
실제 사용자명, 비밀번호 및 RDS 엔드포인트를 명령어에 제대로 입력했다면, MySQL 클라이언트가 RDS 데이터베이스에 연결된다.
EC2 환경 변수 설정
cd ~
vim .bash_profile
export RDS_USERNAME = "RDS 마스터 이름"
export RDS_PASSWORD = "RDS 마스터 암호"
export RDS_DATABASE = "RDS 데이터베이스 이름"
export RDS_HOST = RDS 엔드포인트
.bash_profile에 RDS 관련 정보를 입력한다.
RDS_USERNAME, RDS_PASSWORD와 같은 변수는 사용자가 임의로 설정한 것이다.
esc
정보를 입력한 후, esc 버튼을 누른다.
:wq
:wq를 입력하면, 입력한 정보가 저장된다.
source .bash_profile
.bash_profile 파일의 변경사항이 저장된다.
이렇게 해도 실행이 안된다면,
const production = {
username: env.RDS_USERNAME,
password: env.RDS_PASSWORD,
database: env.RDS_DATABASE,
host: env.RDS_HOST,
dialect: "mysql",
//port: env.MYSQL_PORT
};
로컬에 있는 config/config.js 내용을 다음과 같이 수정한다.
.env 파일에 RDS 관련 환경 변수를 설정한 후에, 수정한 내용을 git repository의 main 브랜치에 merge하고 다시 서버를 실행해보자.