我正在nodejs中创建简单api项目。为此,我安装了8.0.11版本的mysql workbench。我已经创建了配置文件dbconnection.js文件,并在dbconnection.js文件中编写了以下代码:
var mysql = require('mysql');
var path = require('path');
var config = require(path.resolve('./', 'config'))
var connection = mysql.createConnection({
host: config.databaseHost,
user: config.databaseUser,
password: config.databasePassword,
database: config.databaseDatabaseName,
multipleStatements: true
});
connection.connect(function (err) {
if (err) {
console.log('Error connecting to Database',err);
return;
}
console.log('Connection established');
});
module.exports = connection;
我面临以下错误:
code:'er\u not\u supported\u auth\u mode',errno:1251,sqlmessage:'client不支持服务器请求的身份验证协议;考虑升级mysql client',sqlstate:'08004',fatal:true
注意:我的congif尽可能简单,user=root,password=root,host=localhost。
5条答案
按热度按时间mi7gmzs61#
打开终端并登录:
(然后键入密码)
之后:
最后一件重要的事情是重置mysql服务:
ztmd8pv52#
你必须重新配置mysql服务器。为此,请遵循以下步骤。
1) 打开mysql intsaller。
2) 单击reconfigure(左边的mysql服务器)
3) 转到“身份验证方法”选项卡(单击“下一步”两次)
4) 然后选择单选按钮use legacy authentication method。单击“下一步”。
5) 输入密码。单击检查。转到“应用配置”(单击“下一步”两次)。
6) 单击执行。然后完成。
就这样。享受黑客!!
ipakzgxi3#
我也有同样的问题。但它对root用户仍然不起作用。我创建了一个新用户(来自mysql工作台)并将权限授予新用户。然后我尝试了这个新用户,效果很好。请参见工作台设置
mwkjh3gx4#
ewm0tg9j5#
一旦在mysql连接函数中建立了主机、根目录、密码等。。将以下内容粘贴到您试图在workbench中连接的数据库中:
返回终端并运行节点
<file name.js>
再一次