MySQL に接続できません - エラー コード ER_NOT_SUPPORTED_AUTH_MODE
P粉736935587
2023-08-26 15:09:04
<p>MySQL でデータベースを作成し、JS を使用してデータベースに接続したいと考えています。以下はこのために書いたコードですが、エラーが発生します。 </p>
<pre class="brush:php;toolbar:false;">const mysql = require('mysql');
var mysqlConnection = mysql.createConnection({
ホスト: 'ローカルホスト'、
ユーザー: 'root'、
パスワード:'********'、
データベース:「従業員DB」
});
mysqlConnection.connect((err) => {
もし(!エラー)
console.log('DB 接続に成功しました');
それ以外
console.log('DB 接続に失敗しました \n エラー :' JSON.stringify(err, 未定義, 2));
});</pre>
<p>ホスト名を変更し、権限を取り消したり付与したりしてみました(どちらもできませんでした)。データベースを削除して再作成し、再度接続を試みます。データベースに接続するはずですが、理解できないエラーが発生します。エラー メッセージは次のとおりです。 </p>
<pre class="brush:php;toolbar:false;">DB 接続に失敗しました
エラー :{
「コード」: 「ER_NOT_SUPPORTED_AUTH_MODE」、
「エラー番号」: 1251、
"sqlMessage": "クライアントはサーバーによって要求された認証プロトコルをサポートしていません。MySQL クライアントのアップグレードを検討してください",
"sqlState": "08004"、
「致命的」: true
}</pre>
<p>ホスト名変更後:</p>
<pre class="brush:php;toolbar:false;">DB 接続に失敗しました
エラー :{
「コード」: 「ER_HOST_NOT_PRIVILEGED」、
「エラー番号」: 1130、
"sqlMessage": "ホスト 'Mistycyrus.bbrouter' はこの MySQL サーバーへの接続を許可されていません",
「致命的」: true
}</pre></p>
最初のエラー「クライアントは、サーバーが要求した認証プロトコルをサポートしていません。MySQL クライアントのアップグレードを検討してください」の場合は、次のことを行う必要があります:
2 番目のエラー「ホスト 'Mistycyrus.bbrouter' はこの MySQL サーバーへの接続を許可されていません」の場合、ユーザー
'someone'@'Mistycyrus.bbrouter'
を使用して接続しており、そのユーザーは接続は許可されていません。127.0.0.1 localhost
という行が含まれていることを確認してください。