如何修复在Linux中使用nodejs连接数据库的错误?

时间:2019-02-17 07:32:54

标签: mysql node.js

我正在尝试将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 连接数据库时出错...

1 个答案:

答案 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服务器。