Mariadb(mysql Ver 15.1 Distrib 10.0.29-MariaDB、readline 5.2を使用するdebian-linux-gnu(i686)のUbuntu 16.04のnodejs(v6.11.0)アプリケーションでSequelizeバージョン4.3.0を使用しています。アプリケーションが起動して関数を呼び出すとき:Sequelize.sync();
次に、sequelize接続マネージャーが次のエラーをスローします。
未処理の拒否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';
私の場合、次の3行を入力する必要がありました。
use mysql;
update user set authentication_string=password('new_root_password'), plugin='mysql_native_password' where user='root';
flush privileges;