Tidak dapat menyambung ke MySQL - kod ralat ER_NOT_SUPPORTED_AUTH_MODE
P粉736935587
2023-08-26 15:09:04
<p>Saya telah mencipta pangkalan data dalam MySQL dan ingin menyambungkannya menggunakan JS. Di bawah ialah kod yang saya tulis untuk ini, tetapi saya mendapat ralat. </p>
<pre class="brush:php;toolbar:false;">const mysql = require('mysql');
var mysqlConnection = mysql.createConnection({
hos: 'localhost',
pengguna:'root',
kata laluan:'********',
pangkalan data: 'EmployeeDB'
});
mysqlConnection.connect((err) => {
jika (!err)
console.log('Sambungan DB Berjaya');
lain
console.log('Sambungan DB Gagal n Ralat :'+ JSON.stringify(err, undefined, 2));
});</pre>
<p>Saya cuba menukar nama hos dan membatalkan serta memberikan kebenaran (tidak boleh dilakukan). Lepaskan dan buat semula pangkalan data dan cuba sambungkan semula. Saya sepatutnya menyambung ke pangkalan data saya tetapi ia menyebabkan ralat yang saya tidak faham. Mesej ralat adalah seperti berikut: </p>
<pre class="brush:php;toolbar:false;">Sambungan DB Gagal
Ralat :{
"kod": "ER_NOT_SUPPORTED_AUTH_MODE",
"errno": 1251,
"sqlMessage": "Pelanggan tidak menyokong protokol pengesahan yang diminta oleh pelayan pertimbangkan untuk meningkatkan klien MySQL";
"sqlState": "08004",
"maut": benar
}</pre>
<p>Selepas menukar nama hos:</p>
<pre class="brush:php;toolbar:false;">Sambungan DB Gagal
Ralat :{
"kod": "ER_HOST_NOT_PRIVILEGED",
"errno": 1130,
"sqlMessage": "Hos 'Mistycyrus.bbrouter' tidak dibenarkan untuk menyambung ke pelayan MySQL ini",
"maut": benar
}</pre></p>
Untuk ralat pertama "Pelanggan tidak menyokong protokol pengesahan yang diminta oleh pelayan; pertimbangkan untuk menaik taraf klien MySQL" anda perlu:
Untuk ralat kedua "Hos 'Mistycyrus.bbrouter' tidak dibenarkan menyambung ke pelayan MySQL ini", anda menggunakan pengguna
'someone'@'Mistycyrus.bbrouter'
untuk menyambung, dan pengguna itu tidak dibenarkan menyambung.127.0.0.1 localhost
.