我正在尝试使用Express将Nodejs与MySQL 8.0连接起来。 我的代码:
throw err; // Rethrow non-MySQL errors
^
Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client
at Handshake.Sequence._packetToError (G:\Fractal projets\fractalpage\bfweb\node_modules\mysql\lib\protocol\sequences\Sequence.js:52:14)
上面的代码在官方的Express页面中,但我认为它适用于8.0以下的MySQL版本。
当我运行项目时,我得到下一个错误:
io.on('connection', (socket) =>{
console.log('made socket connection');
for(i=0; i<data.length;i++){
socket.emit('initial', data[i]);
}
});
以前安装过MySQL
答案 0 :(得分:0)
看起来您的用户配置了mysql_old_auth 您可以使用此选项中的任何一个进行更改 转换为新的身份验证协议:http://dev.mysql.com/doc/refman/5.7/en/old-client.html或 允许使用不安全的身份验证:https://github.com/mysqljs/mysql#connection-options insecureAuth选项