반응형
Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client
MySQL 연동중 발견된 오류
MySQL이 8이상으로 업그레이드되면서 기본 인증 정책이 mysql_native_password에서 caching_sha2_password로 변경되었습니다.
사용자 암호 해싱에 SHA-256을 사용하니 더 견고해진 것은 맞지만 예전 클라이언트 연결시 에러가 발생합니다.
MySQL 8은 ALTER USER 구문으로 사용자별로 사용할 인증 정책을 설정할 수 있습니다. 아래 구문은 예전 인증 방식인 mysql_native_password로 변경하는 예입니다.
1. 예전 인증 정책으로 변경 예
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'
or
// 저는 HOST가 %로 지정되어 있어서 %로 해주었습니다.
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'password'
2. 현재 인증 정책으로 사용하면서 진행하는 예 ( 추천 )
$ npm install mysql2
mysql대신 mysql2로 연결해주면 됩니다.
말그대로 더 견고해진 SHA-256을 사용하는것이 보안적으로도 새로운 기능 활용적으로도 mysql2를 사용하는 것이 좋습니다.
반응형
'MySQL | NoSQL > MySQL | NoSQL' 카테고리의 다른 글
[ MySQL ] ORDER BY 정렬하기 (0) | 2023.07.10 |
---|---|
[ MySQL ] Column '[컬럼명]' in where clause is ambiguous (0) | 2023.07.03 |
[ MySQL ] Safe Mode ( you are using safe update mode... ) (0) | 2023.01.13 |
[ MySQL ] 새로운 유저 권한 문제 (0) | 2022.07.25 |
[ MySQL ] mysql 유저 생성 + MySQL Workbench에서 사용하기 (0) | 2022.07.20 |