it-swarm.com.de

Node.js MSSQL tedius ConnectionError: Verbindung zu localhost konnte nicht hergestellt werden: 1433 - Verbinden Sie ECONNREFUSED

Ich versuche, eine Verbindung zu MSSQL 2012 mithilfe von NodeJS mit der Verbindungsschnittstelle mssql herzustellen. 

Beim Verbindungsversuch erhalte ich folgende Fehlermeldung:

{ [ConnectionError: Failed to connect to localhost:1433 - connect ECONNREFUSED]
  name: 'ConnectionError',
  message: 'Failed to conncet to localhost:1433 - connect ECONNREFUSED',
  code: 'ESOCKET' }

Irgendwelche Ideen, wie man das beheben kann?

34
Matt Carrier

Die Lösung besteht darin, TCP Verbindungen zu aktivieren, die standardmäßig deaktiviert sind.

enter image description here

78
Matt Carrier

Mein Fall war nicht genau derselbe wie bei Matt, aber sein Screenshot war genug, um mich an das zu erinnern, was mir fehlte.

enter image description here

Wie es here heißt, müssen Sie SQL Server Browser ausführen, wenn Sie den SQL Server-Instanznamen verwenden, um eine Verbindung herzustellen.

options.instanceName Der Instanzname, zu dem eine Verbindung hergestellt werden soll. Der SQL Server-Browserdienst muss auf dem Datenbankserver ausgeführt werden, und UDP-Port 1444 auf dem Datenbankserver muss erreichbar sein (kein Standard) Gegenseitig mit options.port ausschließen. 

17
MMalke

Wenn nach dem Aktivieren der TCP -Verbindung Ihre Konfiguration immer noch nicht funktioniert. Hier ist meine eigene Konfiguration.

var config = {
    "user": 'admin',
    "password": 'password',
    "server": 'ALBERT-PC',
    "database": 'database_name',
    "port": '61427',
    "dialect": "mssql",
    "dialectOptions": {
        "instanceName": "SQLEXPRESS"
    }
};
10
Player1

Es empfiehlt sich, zunächst die Verbindung zum SQL-Server mithilfe eines Abfrageanalysators (SQL Management Studio (Windows) oder SQLPro for MSSQL (Mac)) zu überprüfen, wobei das gleiche Protokoll, der gleiche Port und die gleichen Anmeldeinformationen verwendet werden, die Sie in Ihrer Anwendung verwenden möchten.

In Management Studio ist das Format Server, Port (z. B. 192.168.1.10, 1433). und Sie verwenden wahrscheinlich die SQL Server-Authentifizierung anstelle der Windows-Authentifizierung.


Schritte zum Konfigurieren des SQL-Servers:

Installieren Sie die gemischte Authentifizierung, wenn Sie die SQL Server-Authentifizierung verwenden möchten.

Richten Sie SQL Server ein, um TCP an einer festen Portnummer zu überwachen:

  • SQL Configuration Manager SQL Server-Netzwerkkonfiguration
    • Protokolle für {Instanz}
      • TCP/IP - Aktiviert (Doppelklick)
      • IP-Adresse (an allen gewünschten Schnittstellen)
        • TCP Dynamic Ports = BLANK! (nicht null)
        • TCP-Port - 1433 (oder gewünschter Port)
5
Adam Gering
**Please follow the connection configuration and little test:**

//Declare global variable
var http = require('http');
var events = require('events');
var nodemailer = require('nodemailer');
var sql = require('mssql');<br/>
var Request = require('tedious').Request;  
var TYPES = require('tedious').TYPES; 
//Create an http server
http.createServer(function(req,res)
{
res.writeHead(200, {'Content-Type': 'text/html'});
 var Connection = require('tedious').Connection; 
//Configure the connection 
    var config = {  
        userName: '<user id>',  
        password: '<password>',  
        server: '<system ip>',  
        options: {database: '<database name>'}  
    };  
    var connection = new Connection(config);  
    connection.on('connect', function(err) {  
        console.log("Connected"); 
        executeStatement();     
    }); 

function executeStatement() {  
        request = new Request("select getdate();", function(err) {  
        if (err) {  
            console.log(err);}  
        });
     var result = "";  
        request.on('row', function(columns) {  
            columns.forEach(function(column) {  
              if (column.value === null) {  
                console.log('NULL');  
              } else {  
                result+= column.value + " ";  
              }  
            });  
            console.log(result);  
            result ="";  
        });  

        connection.execSql(request);  
};
  return res.end();
}).listen(8080);

// Post Konfigurationstest im Browser: http: // localhost: 8080/

3
Amresh Kumar

Ich konnte keine Verbindung zu 'localhost' herstellen, obwohl ich 'localhost' in SQL Management Studio und anderen Anwendungen verwende ... Wenn ich Computername (Netzwerkadresse) verwendet habe, hat es funktioniert!

1
DaNeSh

Wenn jemand trotz der vorgeschlagenen Maßnahmen immer noch Probleme hat, eine Verbindung herzustellen.
In meinem Fall musste ich die Port-Eigenschaft TCP in SQL Server-Netzwerkkonfiguration -> Protokolle für ... -> TCP/IP -> IP-Adressen -> IPAll manuell auf 1433 setzen.

[1]

1
Alen