집 >데이터 베이스 >MySQL 튜토리얼 >Node.js를 MySQL에 연결할 때 'ER_NOT_SUPPORTED_AUTH_MODE' 오류를 해결하는 방법은 무엇입니까?
Node.js 서버를 MySQL 데이터베이스에 연결할 때 "ER_NOT_SUPPORTED_AUTH_MODE: 클라이언트가 서버에서 요청한 인증 프로토콜을 지원하지 않습니다." 이 문제는 클라이언트와 서버가 서로 다른 인증 방법을 사용할 때 발생합니다.
문제 분석
오류 메시지는 MySQL 서버가 최신 인증 프로토콜을 사용하도록 구성되었음을 나타냅니다. 이는 Node.js 클라이언트에서 지원되지 않습니다. Node.js 클라이언트 버전이 오래된 경우 이러한 문제가 발생할 수 있습니다.
해결 방법
이 문제를 해결하려면 사용되는 최신 인증 프로토콜을 지원하도록 Node.js 클라이언트를 업그레이드하세요. MySQL 서버에 의해. MySQL v8.0의 경우 다음 단계를 따르세요.
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'; FLUSH PRIVILEGES;
'root'와 'password'를 실제 사용자 이름과 원하는 비밀번호로 바꾸는 것을 잊지 마세요. 이러한 변경 사항은 연결을 시도하는 사용자에게 적용되어야 합니다.
코드 조각(업데이트)
MySQL 구성 및 사용자 권한을 업데이트한 후 Node. 최신 인증 프로토콜을 지원하는 mysql2 라이브러리를 사용하려면 Node.js 연결 조각을 업데이트해야 합니다.
const mysql = require('mysql2'); const connection = mysql.createConnection({ host : 'localhost', user : 'root', password : 'password', database : 'foobarDb' });
이러한 단계를 구현하면 Node.js 서버와 MySQL 데이터베이스 간의 연결을 성공적으로 설정할 수 있습니다. "ER_NOT_SUPPORTED_AUTH_MODE" 오류.
위 내용은 Node.js를 MySQL에 연결할 때 'ER_NOT_SUPPORTED_AUTH_MODE' 오류를 해결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!