我正在学习expressjs并连接到MySQL数据库,但遇到错误。
var express = require('express');
var path = require('path');
var mysql = require('mysql');
var app = express();
var connection = mysql.createConnection({
host : 'Damodars-MacBook-pro.local',
user : 'monty',
password : 'some_pass',
port : 3306,
});
connection.query('USE angularapp');
// Routing
// Configure port
app.set('port', 3006);
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');
app.use(express.static(path.join(__dirname, 'public')));
获取错误为:
错误:ER_NOT_SUPPORTED_AUTH_MODE:客户端不支持 服务器请求的认证协议;考虑升级MySQL 客户 在Handshake.Sequence._packetToError
答案 0 :(得分:1)
在node-mysql
github存储区中可以看到,当前不支持MySQL 8.0。 an open pull request可以添加支持。
在发布修复程序之前,我建议安装MySQL 5.7而不是MySQL 8.0。
您也可以尝试安装节点库mysql2
而不是mysql
,但是我不确定它是否支持MySQL 8.0。