如何修复linux中与nodejs连接数据库的错误?
我正在尝试将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 $ node server.js连接数据库时出错...
回答如下:默认情况下,MySQL客户端使用安全身份验证建立与服务器的连接。
insecureAuth:允许连接到要求旧(不安全)身份验证方法的MySQL实例。 (默认:false)1
查看注释中的错误回溯,看起来您的服务器当前未配置为允许安全身份验证。 2
如果你的MySQL服务器版本是<= 5.6.4
,那么安全auth关闭,你可能想通过在客户端建立连接时启用insecureAuth
来启用旧的auth协议。
var connection = mysql.createConnection({
host : 'localhost',
user : 'root',
password : 'admin',
database : 'dbname',
insecureAuth: true
});
但是,如果您的MySQL服务器版本是
>= 5.6.5
,我建议更新用户的密码以使用更安全的密码散列函数。有step-by-step documentation来完成这个用户帐户。
如果您发现运行的旧版本不支持安全身份验证协议,您可能还需要更新MySQL服务器。
如何修复linux中与nodejs连接数据库的错误?
我正在尝试将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 $ node server.js连接数据库时出错...
回答如下:默认情况下,MySQL客户端使用安全身份验证建立与服务器的连接。
insecureAuth:允许连接到要求旧(不安全)身份验证方法的MySQL实例。 (默认:false)1
查看注释中的错误回溯,看起来您的服务器当前未配置为允许安全身份验证。 2
如果你的MySQL服务器版本是<= 5.6.4
,那么安全auth关闭,你可能想通过在客户端建立连接时启用insecureAuth
来启用旧的auth协议。
var connection = mysql.createConnection({
host : 'localhost',
user : 'root',
password : 'admin',
database : 'dbname',
insecureAuth: true
});
但是,如果您的MySQL服务器版本是
>= 5.6.5
,我建议更新用户的密码以使用更安全的密码散列函数。有step-by-step documentation来完成这个用户帐户。
如果您发现运行的旧版本不支持安全身份验证协议,您可能还需要更新MySQL服务器。