반응형

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를 사용하는 것이 좋습니다.

 

 

 

반응형

+ Recent posts