과거 프로그래밍 자료들/컴퓨터설정&오류

[MYSQL 8.0] Node.js 연동 시 Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client at Handshake.Sequence._packetToError 오류

평부 2021. 12. 29. 15:35

- vscode 내 mysql 연동 시 오류 발생

- mysql.js 파일 내 정보

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
var mysql = require('mysql');
var connection = mysql.createConnection({
    host: 'localhost',
   user: 'nodejs', 
   password: '12345678', 
    database: 'opentutorials'
});
 
connection.connect();
 
connection.query('select * from topic', function(error, results, fields) {
    if(error) {
        console.log(error);
    }
    console.log(results);
});
 
connection.end();
cs

 

 

 

*  문제 해결 시 참고한 블로그

* user를 'root'가 아닌 'nodejs'로 만들고 DB 권한 부여하는 방법 참고(cmd(명령 프롬프트)에서 설정) : (https://cjh5414.github.io/mysql-create-user/)

 

- 문제점 : 클라이언트 프로그램에서 mysql 패스워드 플러그인 'caching_sha2_password"를 소화하지 못함

- 해결책 : 클라이언트 프로그램에서 사용할 수 있는 유저의 패스워드 Plusin를 바꿔 줌

*  문제 해결 시 참고한 블로그

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

 

-> 노랑색으로 표시한 

' ALTER USER 'user 이름'@'localhost' IDENTIFIED WITH mysql_native_password BY 'user 설정 시 비밀번호';

 

처음 user인 'nodejs' 설정 시 localhost로 설정했으므로 꼭 붙여야 함