web-dev-qa-db-ja.com

ER_NOT_SUPPORTED_AUTH_MODE-MySQLサーバー

MySQLデータベースをセットアップしました。 Node JSサーバーを介してアクセスしようとすると、エラーが発生します

「ER_NOT_SUPPORTED_AUTH_MODE:クライアントは、サーバーから要求された認証プロトコルをサポートしていません。MariaDBクライアントのアップグレードを検討してください」

すでにMariaDBをアンインストールし、Homebrewを使用してMySQLをインストールしているため、これは奇妙です。

これは私の接続の試みです:

var mysql = require('mysql');

var connection = mysql.createConnection({
  Host     : 'localhost',
  user     : 'root',
  password : '********',
  database : 'vod_bill_database'
}); 

何か案は?ありがとう

15
João Gouveia

一部のMySQLバージョンでは、接続の確立のための認証が少し乱れていると考えました。私がしなければならなかったのは、接続試行に「insecureAuth:true」という行を追加することだけでした。

var connection = mysql.createConnection({
  Host     : 'localhost',
  user     : 'root',
  password : '********',
  database : 'vod_bill_database',
  insecureAuth : true
}); 

現在は正常に動作しています。

4
João Gouveia

今のところ、8.0バージョンはプラグインを変更する方法です:この例を使用してください:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'
50
Archil Labadze

enter image description here

認証方式を再構成します。5.1のレガシータイプのパスワードサポートを選択します。

エラーの理由

*最新のMysql 8.0をインストールすると、認証方法が異なります。 5.6または5.1の劣化は簡単な解決策です

9
var connection = mysql.createConnection({
  Host     : 'localhost',
  user     : 'root',
  password : '********',
  database : 'vod_bill_database',
  port : 3308 
}); 

私は同じエラーがあり、phpmyadminのポートを3306から3308に変更したので、ここでポート3308を記述する必要があり、動作し始めました。

0
Arshil

5.6.40のような古いバージョンのmysqlを試してください。デフォルトではSHA256_password認証を使用しますが、新しいバージョン8.0です。デフォルトでは、より安全なsha2_password認証を使用し、これをスローします認証プロトコルエラーMYSQLインストーラー5.6.4

0
Abhay Katiyar

ありがとう@Vinayak Shedgeri「MySQLインストーラー」で「MySQLサーバー」ステップを再構成することでエラーを解決しました。 「MySQLインストーラーでの手順

0
Pedriux

このエラーを克服するには、次のコードを使用します。

var connectionString = 'mysql://*root:*password@*localhost/*database?charset=utf8_general_ci&timezone=-0700'; 
var connection= mysql.createConnection(connectionString); 

ただし、設定に基づいてconnectionStringの*マークを変更したことを確認してください。

0