我正在尝试使用Express连接Nodejs和MySQL 8.0。我的代码:
var express = require('express');
var router = express.Router();
var mysql = require('mysql');
router.get('/', function(req, res, next) {
var connection = mysql.createConnection({
host : 'localhost',
user : 'root',
password : 'rootpass'
});
connection.connect(function(err) {
if (err) throw err;
console.log('Connected!');
});
});
上面的代码在官方Express页面中,但我认为它是用于8.0以下的MySQL版本。
当我运行这个项目时,我得到了下一个错误:
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)
以前安装了MySQL
发布于 2018-06-02 02:46:50
看起来您已经为用户配置了mysql_old_auth,您可以使用此选项中的任何一个选项进行更改转换为新的身份验证协议:http://dev.mysql.com/doc/refman/5.7/en/old-client.html或允许使用不安全的身份验证:https://github.com/mysqljs/mysql#connection-options insecureAuth选项
上面的链接对我不起作用,但下面的链接确实适用于https://insidemysql.com/introducing-connector-node-js-for-mysql-8-0/
https://stackoverflow.com/questions/50647638
复制相似问题