我正在尝试将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 ... nn");
} else {
console.log("Error connecting database ... nn");
}
});
app.listen(3000);
在终端中我得到了此输出:
voldemort@lenovo:〜/documents/cloudprint $ node server.js连接数据库的错误...
MySQL客户端使用安全身份验证默认设置与服务器的连接。
不安全感:允许连接到要求使用旧(不安全)身份验证方法的MySQL实例。(默认值:false) 1
查看评论中的错误追溯,看起来您的服务器当前未配置以允许安全身份验证。 2
如果您的MySQL Server版本是<= 5.6.4
,则Secure Auth已关闭,您可能需要通过在客户端中建立连接时启用insecureAuth
来启用旧的auth协议。
var connection = mysql.createConnection({
host : 'localhost',
user : 'root',
password : 'admin',
database : 'dbname',
insecureAuth: true
});
但是,如果您的MySQL Server版本为
>= 5.6.5
,我建议您更新密码供您的用户使用更安全的密码HASHISHING函数。 有分步文档可以为用户帐户完成此操作。
,如果您发现自己运行了不支持安全验证协议的旧版本,则可能还需要更新MySQL服务器。