67

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' }

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

4

11 に答える 11

121

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

ここに画像の説明を入力

于 2014-08-29T22:50:49.640 に答える
30

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

ここに画像の説明を入力

hereで述べられているように、SQL Server インスタンス名を使用して接続する場合は、SQL Server Browser を実行している必要があります。

options.instanceName

接続先のインスタンス名。SQL Server Browser サービスがデータベース サーバーで実行されている必要があり、データベース サーバーの UDP ポート 1434 にアクセスできる必要があります。

(デフォルトなし)

options.port とは相互に排他的です。

于 2015-06-08T13:08:33.873 に答える
21

TCP 接続を有効にしても、構成がまだ機能しない場合。これが私の独自の構成です。

var config = {
    "user": 'admin',
    "password": 'password',
    "server": 'WINDOWS-PC',
    "database": 'database_name',
    "port": 61427, // make sure to change port
    "dialect": "mssql",
    "dialectOptions": {
        "instanceName": "SQLEXPRESS"
    }
};
于 2016-12-13T13:26:30.710 に答える
16

提案されたすべてのことを行ったにもかかわらず、誰かがまだ接続に苦労している場合。
私の場合、SQL Server Network Configuration -> Protocols for ... -> TCP/IP -> IP Addresses -> IPAll で TCP Port プロパティを手動で 1433 に設定する必要がありました。

[1]

于 2019-01-15T14:23:04.237 に答える
6

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

Management Studio では、形式は Server,Port (例: 192.168.1.10,1433) です。また、Windows 認証ではなく SQL Server 認証を使用することになるでしょう。


SQL Server を構成する手順:

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

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

  • SQL 構成マネージャー SQL Server ネットワーク構成
    • {インスタンス} のプロトコル
      • TCP/IP - 有効 (ダブルクリック)
      • IP アドレス (必要なすべてのインターフェース上)
        • TCP 動的ポート = 空白! (ゼロではない)
        • TCP ポート - 1433 (または目的のポート)
于 2016-06-22T01:33:53.237 に答える
3

私の場合、設定に問題がありました。これは間違った設定でした

let config = {
server: 'localhost',
authentication: {
    type: 'default',
    options: {
        userName: 'sa', // update me
        password: 'xxxxx' // update me
    }
},
options: {
    database: 'SampleDB',
    validateBulkLoadParameters:false,
}}

次に、暗号化変数をオプションに追加しました。これで問題が解決しました。構成が修正されました

let config = {
server: 'localhost',
authentication: {
    type: 'default',
    options: {
        userName: 'sa', // update me
        password: 'xxxxxx' // update me
    }
},
options: {
    database: 'SampleDB',
    validateBulkLoadParameters:false,
    encrypt: false,
}

}

于 2020-09-10T14:19:05.977 に答える
0

私にとって、この条件を「いいえ」から「はい」に変更するとうまくいきました:

    switch (key) {
      case 'instance':
        return this.config.options.instanceName
      case 'trusted':
        return this.config.options.trustedConnection ? 'Yes' : 'Yes'

私が提供しても、オプションオブジェクトから値をロードしません。

この変更をファイル\node_modules\mssql\lib\msnodesqlv8\connection-pool.jsにハードコードしました

于 2021-07-08T00:07:10.967 に答える