programing

SequelizeConnectionError: 클라이언트가 서버에서 요청한 인증 프로토콜을 지원하지 않습니다. MariaDB 클라이언트를 업그레이드하십시오.

javaba 2022. 10. 27. 23:41
반응형

SequelizeConnectionError: 클라이언트가 서버에서 요청한 인증 프로토콜을 지원하지 않습니다. MariaDB 클라이언트를 업그레이드하십시오.

어플리케이션이 기동되어 기능할 때 Ubuntu 16.04에서 Mariadb(mysql Ver 15.1 Distribute 10.0.29-MariaDB, readline 5.2를 사용하는 debian-linux-gnu(i686)의 경우)가 있는 nodejs(v6.11.0) 어플리케이션에서 Sequelize 버전 4.3.0을 사용하고 있습니다.Sequelize.sync();그런 다음 sequelize connection manager가 다음 오류를 발생시킵니다.

처리되지 않은 거부 SequelizeConnectionError: 클라이언트가 서버에서 요청한 인증 프로토콜을 지원하지 않습니다. MariaDB 클라이언트를 업그레이드하십시오.

at Utils.Promise.tap.then.catch.err (/home/dariksoft/cars/node_modules/sequelize/lib/dialects/mysql/connection-manager.js:146:17)
at tryCatcher (/home/dariksoft/cars/node_modules/bluebird/js/release/util.js:16:23)
at Promise._settlePromiseFromHandler (/home/dariksoft/cars/node_modules/bluebird/js/release/promise.js:512:31)
at Promise._settlePromise (/home/dariksoft/cars/node_modules/bluebird/js/release/promise.js:569:18)
at Promise._settlePromise0 (/home/dariksoft/cars/node_modules/bluebird/js/release/promise.js:614:10)
at Promise._settlePromises (/home/dariksoft/cars/node_modules/bluebird/js/release/promise.js:689:18)
at Async._drainQueue (/home/dariksoft/cars/node_modules/bluebird/js/release/async.js:133:16)
at Async._drainQueues (/home/dariksoft/cars/node_modules/bluebird/js/release/async.js:143:10)
at Immediate.Async.drainQueues (/home/dariksoft/cars/node_modules/bluebird/js/release/async.js:17:14)
at runCallback (timers.js:672:20)
at tryOnImmediate (timers.js:645:5)
at processImmediate [as _immediateCallback] (timers.js:617:5)

mariadb-server와 mariadb-client를 업데이트했는데 이미 문제가 발생했어요!

누가 이 문제를 해결하도록 도와줄 수 있나요?

답을 찾았어요

mysql 명령줄에 로그인하고 다음 명령을 작성합니다.

use mysql;

update user set authentication_string=password(''),plugin='mysql_native_password' where user='root';

저 같은 경우에는 다음 세 줄을 입력해야 했습니다.

use mysql;
update user set authentication_string=password('new_root_password'), plugin='mysql_native_password' where user='root';
flush privileges;

상위 버전의 mysql을 사용하는 경우 패스워드 기능을 사용할 필요가 없습니다.대신 아래와 같이 쓰시면 됩니다.

use mysql;

update user set authentication_string='new_root_password', plugin='mysql_native_password' where user='root';

flush privileges;

언급URL : https://stackoverflow.com/questions/45051927/sequelizeconnectionerror-client-does-not-support-authentication-protocol-reques

반응형