我尝试使用express将mysql 8.0表中的信息提取到node js中。但我不断地得到错误er\u不支持\u身份验证模式。我尝试了很多方法,例如:
更改单个用户(并使用多个不同用户)的身份验证方法-将其从sha 256更改为caching 256,并更改为默认值(mysql\u native\u password),两者都不起作用。
更改我的节点js代码:我没有使用单一的连接,在致命错误之后给我错误协议排队,而是将其更改为连接池,但仍然得到错误er不支持的auth方法。
我发现mysql服务器使用SHA256密码私钥和公钥,但我不知道如何实现它或在节点中使用它。js公司。
我的数据库表:react\u test
产品|产品|名称|产品|价格1 | | 10
下面是我的node.js代码:
const express = require('express');
const cors = require('cors');
const mysql = require('mysql');
const app = express();
const SELECT_ALL_QUERY = 'SELECT * FROM project.react_test';
const connection = mysql.createConnection({
host:'localhost',
user:'avd',
password:'password',
database:'project',
insecureAuth : true
});
const pool = mysql.createPool({
host : 'localhost',
user : 'avd',
password : 'password',
authentication_string : 'root',
insecureAuth : true
});
//var pool = mysql.createPool(connection);
connection.connect(err => {
if(err) {
return err;
}
})
console.log(connection);
app.use(cors());
app.get('/', (req,res) => {
res.send('hello from product server')
});
app.get('/hola', (req,res) => {
res.send('hola')
});
app.get('/hotels_info', (req,res) => {
connection.query(SELECT_ALL_QUERY, (err, results) => {
if(err){
return res.send(err)
} else {
return res.json({
data: results
})
}
});
});
app.listen(4000, () => {
console.log('Product server listining port 4000');
});
使用单个连接时出错:{“code”:“protocol\u enqueue\u after\u fatal\u error”,“fatal”:false}
使用连接池时出错:{“code”:“er\u not\u supported\u auth\u mode”,“errno”:1251,“sqlmessage”:“客户端不支持服务器请求的身份验证协议;考虑升级mysql client“,”sqlstate“:”08004“,”fatal“:true}
我不知道该怎么做了!请引导我!提前谢谢!
暂无答案!
目前还没有任何答案,快来回答吧!