환경
이름 | 버전 | |
Server | Node.js | v16.14.0 |
DBMS | MySQL | Ver 8.0.28-0ubuntu0.20.04.3 for Linux on x86_64 ((Ubuntu)) |
npm 모듈 | mysql | 2.18.1 |
* mysql : Node.js와 MySQL 연동을 위한 모듈
Error 원인
Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client
에러 문구를 간단하게 해석해보면, 클라이언트 프로그램이 인증 프로토콜을 지원하지 않아 발생했다는 것이다.
즉, 클라이언트가 지원할 수 있는 패스워드 플러그인으로 변경시켜주면 된다.
확인 결과, 나의 경우에는 MySQL 패스워드 플러그인이 caching_sha2_password
방식이어서 현재의 클라이언트 프로그램이 지원하지 못하고 있었다.
Error 해결
1. 아래 명령어로 사용자의 패스워드 플러그인 변경
mysql> ALTER USER 'user_name'@'%' IDENTIFIED WITH mysql_native_password BY 'password';
'user_name'
: (연동하는 데이터베이스의) 사용자 이름
'password'
: (연동하는 데이터베이스의) 사용자 비밀번호
2. 플러그인 수정에 성공했는지 확인
mysql> SELECT Host,User,plugin,authentication_string FROM mysql.user;
해당 사용자의 플러그인이 caching_sha2_password
방식에서 mysql_native_password
방식으로 수정된 것을 볼 수 있을 것이다.
'Back-end' 카테고리의 다른 글
[Node.js] TestDome Solution - First Promise (0) | 2022.09.14 |
---|---|
Django 웹프로그래밍 bash 명령어 (0) | 2020.09.26 |