집 >데이터 베이스 >MySQL 튜토리얼 >Node.js에서 MySQL에 연결할 때 'ER_NOT_SUPPORTED_AUTH_MODE' 오류가 발생하는 이유는 무엇입니까?
"ER_NOT_SUPPORTED_AUTH_MODE" 오류는 Node.js 클라이언트가 MySQL과의 연결을 설정할 수 없습니다. 지원되지 않는 인증 프로토콜로 인해 서버가 작동하지 않습니다. 이 문제는 MySQL 서버가 클라이언트가 지원하지 않는 특정 인증 방법을 요구할 때 발생합니다.
귀하의 경우에는 MariaDB에서 MySQL로 업그레이드했습니다. 그러나 사용 중인 JavaScript 연결 조각은 MySQL 8.0 이상에서 지원되지 않는 MariaDB 인증 프로토콜을 계속 사용하고 있을 수 있습니다.
해결책:
해결 방법 이 문제가 발생하면 MySQL 기본 인증 프로토콜을 지원하도록 Node.js 클라이언트를 업그레이드해야 합니다. 이 프로토콜은 MariaDB 및 MySQL 서버와 모두 호환됩니다.
MySQL 버전 8.0 이상의 경우 다음 명령을 사용하여 루트 사용자의 인증 방법을 업데이트하세요.
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
"root"를 다음으로 바꾸세요. 사용자 이름과 "password"를 원하는 비밀번호로 입력하세요.
인증 방법이 업데이트되면 다음 명령을 실행하여 활성화하세요. 변경 사항:
FLUSH PRIVILEGES;
이제 MySQL 기본 프로토콜을 사용하도록 JavaScript 연결 조각을 수정하세요.
var mysql = require('mysql'); var connection = mysql.createConnection({ host: 'localhost', user: 'root', password: 'password', database: 'foobarDb', authPlugin: 'mysql_native_password' // specify the MySQL native authentication protocol });
이렇게 하면 "ER_NOT_SUPPORTED_AUTH_MODE" 오류가 해결되고 MySQL에 연결할 수 있습니다. Node.js 서버의 데이터베이스입니다.
위 내용은 Node.js에서 MySQL에 연결할 때 'ER_NOT_SUPPORTED_AUTH_MODE' 오류가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!