本文介绍了考虑在 Handshake.Sequence._packetToError 处升级 MySQL 客户端的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在学习 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 客户端的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-19 07:29