Node.js와 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
해결방법
mysql -u root -p
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '비밀번호입력';
mysql을 실행한 뒤 ALTER로 인증 플러그인을 변경해주면 된다.
이때 'Your password does not satisfy the current policy requirements' 에러 메시지가 뜰 수 있다. 내가 설정해둔 보안 규칙에 맞지 않은 비밀번호를 입력했기 때문이다. 나는 중간 단계로 보안수준을 설정해놨는데 그 규칙이 뭔지 기억이 잘 안났다.
그래서 "SHOW VARIABLES LIKE 'validate_password%';"로 비밀번호 규칙을 다시 확인했다.
비밀번호는 8자리 이상, 대문자와 숫자, 특수기호까지 섞어야 했다ㅎㅎ
원인
원인이 궁금해서 찾아보다가 이분의 글을 발견했다!
문제를 해결한 지금은 root 플러그인이 mysql_native_password로 나오는데 원래는 caching_sha2_password여서 기존의 비밀번호로 로그인을 할 수 없었나보다. 그래서 mysql 서버에서 mysql_native_password 플러그인을 사용하도록 변경해주면 문제가 해결이 되는 것이었따~~!
ㅎㅎ소소한 문제 해결 완료해서 기분이 좋다~!!
'> 개발 > Node.js & Express' 카테고리의 다른 글
[Express] Express로 CRUD 구현하기 with MySQL & typeORM (0) | 2023.08.03 |
---|---|
Node.js 요청 데이터 보내기, request.on()과 response.end() (0) | 2023.07.30 |
[Node.js]Node.js의 fs모듈로 디렉토리와 파일 추가 함수 만들기 (1) | 2023.06.05 |
댓글