2017-07-16 61 views
0

我需要提供模块MySQL连接,所以提供这样的代码:节点和MySQL连接到数据库

var express = require('express'); 
var mysql = require('mysql') 
var app = express(); 

var connection = mysql.createConnection({ 
    host: '149.xxx.xx.x', 
    user: 'User', 
    password: 'Password', 
    database: 'DataBase', 
    port: 1443, 
}); 

connection.connect(
    function(error) { 
     console.log(error.code); // 'ECONNREFUSED' 
     console.log(error.fatal); // true 
     console.log(error.sql); 
     console.log(error.sqlMessage);  
} 
); 

和经过一段时间后(约1-2分钟)我从收到错误那些console.logs:

ECONNRESET 
true 
undefined 
undefined 

我想,也许是因为我的“nonactivity”超时,但是当我试图做的查询中的错误是一样的。

有什么想法是什么错?我从DataGrip中检查它,数据是正确的。

+0

你是如何做查询?你能为此显示代码吗? – aug

+2

你确定它是一个MySQL服务器吗?端口1443是MS SQL Server的默认端口。 – mscdex

+0

@mscdex明天我会问,但后端开发人员告诉我有关MySQL。当然我会尽快检查这个mssql的节点库。 – P4TRYK

回答

0

好的,我在这里发现了一个小错误。该数据库是MS SQL Server(microsoft)。我想现在使用名为mssql连接到数据库的图书馆,提供一些代码:

var config = { 
    server: "149.xxx.xx.x", 
    database: "Database", 
    user: "User", 
    password: "Password", 
    connectionTimeout: 300000, 
    requestTimeout: 300000, 
    pool: { 
     idleTimeoutMillis: 300000, 
     max: 100 
    } 
}; 

function getEmp() { 
    var connection = new sql.Connection(config); 
    var req = new sql.Request(connection); 

    connection.connect(function (error) { 
     if(error) { 
      console.log(error); 
      return; 
     } 
     req.query('Procedure', function(err, data) { 
      if (err) { 
       console.log(err); 
      } else { 
       console.log(data); 
      } 
      connection.close(); 
     }); 
    }); 
} 

getEmp(); 

,我收到错误消息:

{ ConnectionError: Failed to connect to 149.xxx.xx.x:1433 - connect ETIMEDOUT 149.xxx.xx.x:1433 
at Connection.<anonymous> (/Users/phuzarski/Learning/NodeJS/srv-express/node_modules/mssql/lib/tedious.js:353:25) 
at Connection.g (events.js:292:16) 
at emitOne (events.js:96:13) 
at Connection.emit (events.js:188:7) 
at Connection.socketError (/Users/phuzarski/Learning/NodeJS/srv-express/node_modules/tedious/lib/connection.js:791:12) 
at Socket.<anonymous> (/Users/phuzarski/Learning/NodeJS/srv-express/node_modules/tedious/lib/connection.js:33:15) 
at emitOne (events.js:96:13) 
at Socket.emit (events.js:188:7) 
at emitErrorNT (net.js:1277:8) 
at _combinedTickCallback (internal/process/next_tick.js:80:11) 


name: 'ConnectionError', 
    message: 'Failed to connect to 149.xxx.xx.x:1433 - connect ETIMEDOUT 149.xxx.xx.x:1433', 
    code: 'ESOCKET' } 

可以肯定的数据是正确─DataGrip是连接这里罚款。

我发现在谷歌的类似问题,问题是禁用TCP/IP。我检查了这一个,它是使用此端口1443启用。