본문 바로가기

Database

Node.js와 Mysql연동 오류 발생시 해결방법

--> .env파일로 Mysql에 접속 가능한 아이디, 비밀번호, 사용할 데이터베이스명 입력

.env파일(정상적으로 연동이 되는 환경변수 작성법)

*** .env파일 작성시 유의사항

- value를 지정할 때 ""로 문자열을 지정하지 말고 ''로 문자열을 지정할 것 (오류가 발생할 위험이 있음, 컴퓨터 마다 케이스 바이 케이스)

발생할 수 도 있는 오류 : Error: the string "ER_ACCESS_DENIED_ERROR: Access denied for user '"sprint"'@'localhost' (using password: YES)" was thrown, throw an Error

오류가 발생할 수 있음(.env에서 환경변수 값을 작성시 반드시 ''로 문자열을 작성할 것)

--> 여기서 만약 Mysql에 접속하는 아이디의 plugin이  caching_sha2_password일 경우 node.js와 연동에서 오류가 발생하게 된다.

sprint 계정의 plugin이 mysql_native_password으로 설정되어 있음(이러면 정상적으로 연동됨)

 

에러 발생

 Error: the string "ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client" was thrown, throw an Error :)

      at processTicksAndRejections (node:internal/process/task_queues:94:5)

 

에러 해결

--> 연결하려는 계정의 plugin을 mysql_native_password으로 변경해야 한다.

--> 또는 계정에 비밀번호가 아예 설정되어 있지 않아도 연동에 문제가 발생 (반드시 계정 생성시 비밀번호를 지정해 줄것)

 

1. '%'로 ip로 지정, plugin은 mysql_native_password로 지정

create user 'username'@'%' identified with mysql_native_password by 'password';

 

2. 해당 아이디에 사용할 데이터베이스내에서 sql을 사용할 수 있도록 권한 부여

grant all privileges on useDB.* to 'username'@'%';

 

3. node.js와 Mysql연동시 정상적으로 연동이 된다.

 

참고할 블로그

[1]

https://velog.io/@michael00987/nodejs-%EC%99%80-mysql-%EC%97%B0%EB%8F%99-%EC%97%90%EB%9F%AC-%ED%95%B4%EA%B2%B0

 

nodejs 와 mysql 연동 에러 해결

mysql을 brew로 설치하고 nodejs와 mysql을 연동하게되면 아래와 같은 에러가 발생할수 있다.

velog.io

[2]

https://1mini2.tistory.com/88

 

[MySQL 8.0] Nodejs 연동 시 에러 "Client does not support authentication protocol requested by server; consider upgrading My

야무지게 설치하고 Nodejs와 연동하려고 하니까 바로 뙇 에러가 나오네요...😭😭😭😭😂 1. 샘플 코드 사용한 코드는 아래와 같습니다. (예제 링크) // test-mysql.js 파일 var mysql = require('mysql'); var co

1mini2.tistory.com

[3] 오류 관련 해결 정보

https://java119.tistory.com/95

 

[MySQL || MariaDB] System,SQL ERROR 모음 원인 및 해결 총 정리

System 오류 1. ERROR 2002 : can't connect to local mysql server through socket '/var/lib/mysql/mysql.sock' (2) (13) (111) 이 문제는 메시지 내용은 같으나, 뒤에 숫자에 따라 해결법이 다릅니다...

java119.tistory.com