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'
});
何か案は?ありがとう
一部のMySQLバージョンでは、接続の確立のための認証が少し乱れていると考えました。私がしなければならなかったのは、接続試行に「insecureAuth:true」という行を追加することだけでした。
var connection = mysql.createConnection({
Host : 'localhost',
user : 'root',
password : '********',
database : 'vod_bill_database',
insecureAuth : true
});
現在は正常に動作しています。
今のところ、8.0バージョンはプラグインを変更する方法です:この例を使用してください:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'
var connection = mysql.createConnection({
Host : 'localhost',
user : 'root',
password : '********',
database : 'vod_bill_database',
port : 3308
});
私は同じエラーがあり、phpmyadminのポートを3306から3308に変更したので、ここでポート3308を記述する必要があり、動作し始めました。
5.6.40のような古いバージョンのmysqlを試してください。デフォルトではSHA256_password認証を使用しますが、新しいバージョン8.0です。デフォルトでは、より安全なsha2_password認証を使用し、これをスローします認証プロトコルエラー。 MYSQLインストーラー5.6.4
ありがとう@Vinayak Shedgeri「MySQLインストーラー」で「MySQLサーバー」ステップを再構成することでエラーを解決しました。 「MySQLインストーラーでの手順 」
このエラーを克服するには、次のコードを使用します。
var connectionString = 'mysql://*root:*password@*localhost/*database?charset=utf8_general_ci&timezone=-0700';
var connection= mysql.createConnection(connectionString);
ただし、設定に基づいてconnectionStringの*マークを変更したことを確認してください。