问题描述
我正在学习 expressjs 并连接到 MySQL 数据库,但出现以下错误.
I am learning expressjs and connecting to MySQL database, but getting below error.
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
推荐答案
从 node-mysql
github repo 中可以看出,目前不支持 MySQL 8.0.有一个开放的拉取请求来添加支持.
As can be seen in the node-mysql
github repo, MySQL 8.0 is currently not supported. There is an open pull request to add the support.
在发布修复程序之前,我建议安装 MySQL 5.7 而不是 MySQL 8.0.
Until a fix is released, I would recommend to install MySQL 5.7 instead of MySQL 8.0.
您也可以尝试安装 Node 库 mysql2
而不是 mysql
,但我不确定它是否支持 MySQL 8.0.
You can also try installing the Node library mysql2
instead of mysql
, but I am not sure whether it supports MySQL 8.0.
这篇关于考虑在 Handshake.Sequence._packetToError 处升级 MySQL 客户端的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!