[상황] MySQL 커넥션을 백엔드와 연결해주려고 코드를 작성하니 에러가 발생했다.
[에러 코드]
code: 'ER_NOT_SUPPORTED_AUTH_MODE',
errno: 1251,
sqlMessage: 'Client does not support authentication protocol requested by server; consider upgrading MySQL client',
sqlState: '08004',
fatal: true
[해결 방법] 외부 접속을 위한 유저 새로 만들어주기
8.0 버전으로 오면서 외부접속 시 로컬 비밀번호가 아니라 암호화된 다른 비밀번호를 사용하도록 바뀐 것 같습니다.
그래서 일반적으로 접속할 때 사용하는 비밀번호로도 외부에서 접속이 가능하게끔 설정해주어야 합니다.
1. 유저 만들기
create user '유저명'@'%' identified with mysql_native_password by '비번';
2. 권한 주기
grant all privileges on . to '유저명'@'%';
이 명령어로 권한을 주시면 강의와 같이 잘 동작합니다.출처 : nodejs 와 mysql 연동 에러 해결 | 작성자 michael00987 (🔗 링크)
user를 새로 만들고, backend의 database.js를 수정해주었다.