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?
La solution consiste à activer TCP les connexions désactivées par défaut.
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.
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.
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"
}
};
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:
**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/
Je ne pouvais pas me connecter avec "localhost", bien que j'utilise "localhost" dans SQL Management Studio et d'autres applications .
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.
[