web-dev-qa-db-fra.com

Node.js MSSQL tedius ConnectionError: Échec de la connexion à l'hôte local: 1433 - connecter ECONNREFUSED.

J'essaie de me connecter à MSSQL 2012 à l'aide de NodeJS avec l'interface de connexion mssql

En essayant de me connecter, j'obtiens l'erreur suivante:

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

Des idées pour résoudre le problème?

34
Matt Carrier

La solution consiste à activer TCP les connexions désactivées par défaut.

enter image description here

78
Matt Carrier

Mon cas n'était pas exactement le même que celui de Matt, mais sa capture d'écran était suffisante pour me rappeler ce qui manquait.

enter image description here

Comme il est dit ici , lorsque vous utilisez le nom d’instance SQL Server pour vous y connecter, le navigateur SQL Server doit être en cours d’exécution.

options.instanceName Le nom de l'instance à laquelle se connecter. Le service SQL Server Browser doit être exécuté sur le serveur de base de données et le port UDP 1444 sur le serveur de base de données doit être accessible . (aucun défaut) Mutuellement exclusif avec options.port. 

17
MMalke

Si, après avoir activé la connexion TCP, votre configuration ne fonctionne toujours pas. Voici ma propre configuration.

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

La meilleure pratique consiste à vérifier d'abord la connexion au serveur SQL à l'aide d'un analyseur de requête (SQL Management Studio (Windows) ou SQLPro pour MSSQL (Mac)) utilisant les mêmes protocole, port et informations d'identification que ceux que vous souhaitez utiliser via votre application.

Dans Management Studio, le format est Serveur, Port (par exemple 192.168.1.10,1433); et vous utiliserez probablement l'authentification SQL Server au lieu de l'authentification Windows.


Étapes pour configurer le serveur SQL:

Installez avec authentification mixte, si vous envisagez d'utiliser l'authentification SQL Server.

Configurez SQL Server pour écouter sur TCP sur un numéro de port fixe:

  • Gestionnaire de configuration SQL Configuration réseau SQL Server
    • Protocoles pour {instance}
      • TCP/IP - Activé (Double-clic)
      • Adresse IP (sur toutes les interfaces souhaitées)
        • Ports dynamiques TCP = BLANK! (pas zéro)
        • Port TCP - 1433 (ou port souhaité)
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);

// Test de post-configuration sur le navigateur: http: // localhost: 8080/

3
Amresh Kumar

Je ne pouvais pas me connecter avec "localhost", bien que j'utilise "localhost" dans SQL Management Studio et d'autres applications .

1
DaNeSh

Si quelqu'un a encore du mal à se connecter malgré tout ce qui a été proposé.
Dans mon cas, je devais définir manuellement la propriété TCP Port sur 1433 dans Configuration réseau SQL Server -> Protocoles pour ... -> TCP/IP -> Adresses IP -> IPAll.

[1]

1
Alen