💡/오류노트
[AWS] 클라우드 서버 DB 연결 에러 해결
built
2024. 6. 29. 13:57
AWS 클라우드 서버와 DB 연결 중 발생한 에러 해결 과정
1️⃣ Node.js와 MySQL 연동 에러
아래 명령어를 실행시 에러가 발생했다.
$ node app.js
Error during Data Source initialization Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client
클라이언트가 지원하지 않는 인증 프로토콜을 사용하는 경우 발생하는 에러이다.
myid와 mypassword 자리에 mysql 사용자 계정을 입력하여 모든 호스트에서의 접속을 허용한다.
(특정 호스트에서만 접속을 허용하려면 '%' 대신 해당 호스트를 입력한다. ex. localhost)
$ ALTER USER 'myid'@'%' IDENTIFIED WITH mysql_native_password BY 'mypassword';
2️⃣ errno: 1049 ER_BAD_DB_ERROR: Unknown database
.env의 DB_URL를 EC2 인스턴스 프라이빗 IPv4 주소와 Amazon RDS ID, Password 정보로 수정하여 해결했다.
3️⃣ message: ER_NO_SUCH_TABLE: Table doesn't exist
DB를 정상적으로 만들고 가데이터까지 넣었는데 아래와 같은 오류가 발생했다.
.env의 문제일까 싶어 고의로 DB_HOST에 오타를 내고 에러메시지를 구글 검색하여 힌트를 얻었다.
.env DB_HOST에 Amazon RDS 엔드포인트를 입력하니 정상적으로 데이터가 출력되었다.
(RDS 엔드포인트 경로: RDS > 데이터베이스 > 연결 및 보안 > 엔드포인트)
참고
https://github.com/mysqljs/mysql/issues/1745