728x90
반응형
오류가 발생하는 이유
Node.js에서 MySQL 패키지를 설치하는 한국어 가이드 문서를 보면 흔히 구버전 MySQL을 설명하는 가이드가 많다. MySQL이 과거에는 'mysql_native_password' 인증 프로토콜을 쓰다가 현재는 'caching_sha2_password'을 사용하고 있는데 이로인해서 MySQL 8.0에 구버전 MySQL 패키지를 사용해서 연결하는 경우 아래와 같은 경고가 뜨며 연결이 되지 않는 것을 볼 수 있다.
Client does not support authentication protocol requested by server; consider upgrading MySQL client
해결 방법
이 문제를 해결하는 방법은 2가지가 있다. 첫 번째 해결 방법은 인증방식을 구버전을 사용하도록 수정하는 것인데 나는 호환성 문제가 발생하거나 예상되는 환경이 아니라면 이 방법을 추천하지 않는다. 두 번째 방법은 본 글에서 설명하 'mysql2' 패키지를 설치하여 MySQL 8.0에 연결하는 방법이다. 아래와 같이 NPM(Node Package Manager)을 활용하여 'mysql2' 패키지를 설치할 수 있다.
npm install mysql2
MySQL 연결 설정은 아래와 같이 할 수 있다.
const mysql = require('mysql2/promise');
const pool = mysql.createPool({
host: '127.0.0.1',
port: 3306,
user: 'root',
password: 'password',
database: 'database',
connectTimeout: 3000,
connectionLimit: 10
})
module.exports = pool
참고문서
[1] "MySQL 8.0 - Client does not support authentication protocol requested by server; consider upgrading MySQL client", 스택오버플로우, 2018년 4월 30일. @원문보기
728x90
반응형
'[WEB] Back-End Framework & Library > Node.js, Express' 카테고리의 다른 글
[CentOS 7] Express 방화벽 허용 (0) | 2022.09.22 |
---|---|
Visual Studio Code를 Node.js의 통합개발환경(IDE)로 쓰자 (0) | 2022.08.16 |
[CentOS 7] Forever 4.0.3 설치 (0) | 2022.08.08 |
[Windows 10] Node.js 설치하기 (0) | 2022.08.08 |
[CentOS 7] Express 4.16.1 설치 (0) | 2022.08.03 |
댓글