web-dev-qa-db-ja.com

Node.js MSSQL tedius ConnectionError:localhost:1433への接続に失敗しました-接続ECONNREFUSED

mssql 接続インターフェイスでNodeJSを使用してMSSQL 2012に接続しようとしています。

接続しようとすると、次のエラーが表示されます。

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

これを修正する方法についてのアイデアはありますか?

39
Matt Carrier

解決策は、TCPデフォルトで無効になっている接続を有効にすることです。

enter image description here

86
Matt Carrier

私の場合はマットの場合とまったく同じではありませんでしたが、彼のスクリーンショットは何が欠けているかを思い出すのに十分でした。

enter image description here

here と言われているように、SQL Serverインスタンス名を使用して接続するには、SQL Server Browserを実行する必要があります。

options.instanceName接続するインスタンス名。 SQL Server Browserサービスがデータベースサーバーで実行されている必要があり、データベースサーバーのUDPポート1444に到達できる必要があります。 (デフォルトなし)options.portと相互に排他的。

19
MMalke

TCP接続を有効にした後でも設定が機能しない場合。ここに自分の設定があります。

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

提案されたすべてを実行しても、誰かがまだ接続に苦労している場合。
私の場合、手動でTCPポートプロパティをSQL Serverネットワーク構成の1433に設定する必要がありました->のプロトコル...-> TCP/IP-> IPアドレス-> IPAll。

[1]

7
Alen

ベストプラクティスは、アプリケーションで使用するのと同じプロトコル、ポート、および資格情報を使用するクエリアナライザー(SQL Management Studio(Windows)またはSQLPro for MSSQL(Mac))を使用して、最初にSQLサーバーへの接続を確認することです。

Management Studioでは、形式はServer、Port(e.g. 192.168.1.10,1433);おそらくWindows認証の代わりにSQL Server認証を使用しているでしょう。


SQL Serverを構成する手順:

SQL Server認証を使用する場合は、混合認証でインストールします。

固定ポート番号でTCPでリッスンするようにSQL Serverをセットアップします。

  • SQL構成マネージャーSQL Serverネットワーク構成
    • {インスタンス} のプロトコル
      • TCP/IP-有効(ダブルクリック)
      • IPアドレス(必要なすべてのインターフェイス)
        • TCP動的ポート=空白! (ゼロではない)
        • TCPポート-1433(または目的のポート)
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);

//ブラウザで設定テストを送信: http:// localhost:8080 /

3
Amresh Kumar

SQL Management Studioや他のアプリケーションで「localhost」を使用しているのに、「localhost」に接続できませんでした。コンピューター名(ネットワークアドレス)を使用すると、機能しました!

1
DaNeSh