我正在尝试将mysql与nodejs连接起来,但是我的代码有问题,请帮忙!
var express = require("express");
var mysql = require('mysql');
var connection = mysql.createConnection({
host : 'localhost',
user : 'root',
password : 'admin',
database : 'dbname',
});
var app = express();
connection.connect(function(err){
if(!err) {
console.log("Database is connected ... \n\n");
} else {
console.log("Error connecting database ... \n\n");
}
});
app.listen(3000);
在终端中,我得到以下输出:
voldemort @ Lenovo:〜/ Documents / cloudprint $节点server.js 连接数据库时出错...
答案 0 :(得分:0)
默认情况下,MySQL客户端使用安全身份验证建立与服务器的连接。
insecureAuth:允许连接到要求使用旧的(不安全的)身份验证方法的MySQL实例。 (默认:false) 1
查看注释中的错误回溯,看来您的服务器当前未配置为允许安全身份验证。 2
如果您的MySQL服务器版本为<= 5.6.4
,则安全身份验证已关闭,您可能希望通过在客户端中建立连接时启用insecureAuth
来启用旧的身份验证协议。
var connection = mysql.createConnection({
host : 'localhost',
user : 'root',
password : 'admin',
database : 'dbname',
insecureAuth: true
});
但是,如果您的MySQL服务器版本为
>= 5.6.5
,建议您更新密码,以便用户使用更安全的密码哈希功能。 有step-by-step documentation个用户帐户可以完成此操作。
如果发现运行的版本不支持安全身份验证协议,则可能还需要更新MySQL服务器。