Подтвердить что ты не робот

Node.js MSSQL tedius ConnectionError: Не удалось подключиться к localhost: 1433 - подключить ECONNREFUSED

Я пытаюсь подключиться к MSSQL 2012 с помощью NodeJS с интерфейсом mssql.

При попытке подключения я получаю следующую ошибку:

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

Любые идеи о том, как исправить это?

4b9b3361

Ответ 1

Решение состоит в том, чтобы включить TCP-соединения, которые по умолчанию отключены.

enter image description here

Ответ 2

Мое дело было не совсем таким же, как у Мэтта, но его скриншота было достаточно, чтобы запомнить меня, чего не хватало.

enter image description here

Как сказано здесь, когда вы используете имя экземпляра SQL Server для подключения к нему, у вас должен быть запущен браузер SQL Server.

options.instanceName     Имя экземпляра для подключения. Служба сервера SQL Server должна быть запущена на сервере базы данных, а UDP-порт 1444 на сервере базы данных должен быть доступен.     (без дефолта)     Взаимное эксклюзивное с options.port.

Ответ 3

Если после включения TCP-соединения и ваша конфигурация не работает. Вот моя собственная конфигурация.

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

Ответ 4

Если кто-то все еще изо всех сил пытается соединиться, несмотря на все, что было предложено.
В моем случае мне пришлось вручную установить для свойства TCP Port значение 1433 в Конфигурация сети SQL Server → Протоколы для... → TCP/IP → IP-адреса → IPAll.

[1]

Ответ 5

Лучше всего сначала проверить подключение к SQL-серверу с помощью анализатора запросов (SQL Management Studio (Windows) или SQLPro для MSSQL (Mac)) с использованием того же протокола, порта и учетных данных, которые вы хотите использовать через приложение.

В Management Studio формат - это сервер, порт (например, 192.168.1.10, 143); и вы, вероятно, будете использовать аутентификацию SQL Server вместо проверки подлинности Windows.


Шаги по настройке SQL Server:

Установить с помощью смешанной проверки подлинности, если вы собираетесь использовать аутентификацию SQL Server.

Установите SQL Server для прослушивания TCP по фиксированному номеру порта:

  • Конфигурация SQL Server SQL Server Конфигурация сети
    • Протоколы для {Instance}
      • TCP/IP - включено (Двойной щелчок)
      • IP-адрес (на всех желаемых интерфейсах)
        • Динамические порты TCP = BLANK! (не ноль)
        • Порт TCP - 1433 (или желаемый порт)

Ответ 6

**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);

//Опубликовать тест конфигурации в браузере: http://localhost: 8080/

Ответ 7

Я не мог подключиться к "localhost", хотя я использую "localhost" в SQL Management Studio и других приложениях. Когда я использовал имя компьютера (сетевой адрес), он сработает!

Ответ 8

Еще одна довольно забавная/глупая причина, по которой он может не подключаться, это потому, что если имя вашего сервера включает в себя имя хоста/домен в его имени, вам нужно убедиться, что вы используете 2 обратных слеша... в моем случае у меня было
сервер: имя_хоста_машины\имя_сервера, вместо имени_хоста_машины\имя_сервера