【问题标题】:Consider upgrading MySQL client at Handshake.Sequence._packetToError考虑在 Handshake.Sequence._packetToError 升级 MySQL 客户端
【发布时间】:2018-08-31 22:39:12
【问题描述】:

我正在学习 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

【问题讨论】:

  • 您安装的 MySQL 服务器和node-mysql 库的版本是什么?
  • @MikhailBurshteyn MySQL 8.0.12,请告诉我如何找到 node-mysql 库版本,在运行 node -v 时,它显示为 v8.11.3
  • 在你的项目目录中运行npm list mysql
  • @MikhailBurshteyn damodar@1.0.0 /Users/Damodar └── mysql@2.16.0

标签: mysql


【解决方案1】:

node-mysql github repo 中可以看出,目前不支持 MySQL 8.0。有an open pull request添加支持。

在发布修复程序之前,我建议安装 MySQL 5.7 而不是 MySQL 8.0。

您也可以尝试安装Node库mysql2而不是mysql,但我不确定它是否支持MySQL 8.0。

【讨论】:

  • 我可以在 MySQL 8.0 上下载 grad mysql 或卸载 n 安装吗?
  • @developer 我不确定它在 macOS 上是如何完成的,但很可能你需要卸载和安装
猜你喜欢
  • 2018-10-10
  • 1970-01-01
  • 2019-03-19
  • 2018-10-29
  • 2018-11-03
  • 2018-12-11
相关资源
最近更新 更多