データベースへの接続中にエラーが発生しました(SQL Server 2008 R2)
「mssql」を使用しています:「^ 5.1.0」
ローカルホストとSQLServer2017に接続できます
[ネスト] 29632- 2019年7月29日午後9時34分[TypeOrmModule]データベースに接続できません。 再試行(1)... + 876ms
ConnectionError:{{host}}:1433への接続に失敗しました-ストリームが破棄された後、writeを呼び出すことができません
接続時。
Object.onceWrapper(events.js:288:20)で
Connection.emitで(events.js:200:13)
Connection.socketError(nrwlnode_modulestediouslibconnection.js:1098:12)で
ソケットで。
Socket.emitで(events.js:205:15)
errorOrDestroy(internal / streams / destroy.js:107:12)で
onwriteErrorで(_stream_writable.js:432:5)
オンライト時(_stream_writable.js:459:5)
doWriteで(_stream_writable.js:413:11)
親切にいくつかの解決策を提案してください:)
こんにちは@ bj9215 、
どのバージョンの退屈なものを使用していますか? Mssql package.jsonは、古いバージョンの退屈なバージョンを使用しています(現在の退屈なバージョンはv6.2.0です)。 それを更新してみて、それが役立つかどうかを確認しますか? :)
どのバージョンのNode.jsを実行していますか? 暗号化を有効にしていますか?
古いバージョンのSQLServerに接続しようとしている場合、古いバージョンのTLSを使用し、SQL Server2008とNode.jsバージョンの両方でサポートされている暗号スイートを使用するように暗号化設定を微調整する必要があります。使っている。
@ bj9215まだこの問題が発生していますか?
私は「退屈な」という同様の問題を抱えています:「6.6.2」、
const config = {
server: 'local-sql-host',
authentication: {
type: 'default',
options: {
userName: process.env.AUTH_LOCAL_USR,
password: process.env.AUTH_LOCAL_PWD,
},
},
options: {
database: 'DATABASE_NAME',
encrypted: false,
},
}
debug connected to {local-sql-host}:1433
debug State change: Connecting -> SentPrelogin
debug State change: SentPrelogin -> SentTLSSSLNegotiation
debug Failed to connect to {local-sql-host}:1433 - Cannot call write after a stream was destroyed
connect $db> test.(): ConnectionError: Failed to connect to {local-sql-host}:1433 - Cannot call write after a stream was de
stroyed
at ConnectionError (C:\workspace\api-v3\dist\webpack:\node_modules\tedious\lib\errors.js:13:1)
at Connection.socketError (C:\workspace\api-v3\dist\webpack:\node_modules\tedious\lib\connection.js:1258:1)
at Socket.<anonymous> (C:\workspace\api-v3\dist\webpack:\node_modules\tedious\lib\connection.js:1093:1)
at Socket.emit (events.js:215:7)
at errorOrDestroy (internal/streams/destroy.js:108:12)
at onwriteError (_stream_writable.js:446:5)
at onwrite (_stream_writable.js:473:5)
at doWrite (_stream_writable.js:427:11)
at writeOrBuffer (_stream_writable.js:415:5)
at Socket.Writable.write (_stream_writable.js:305:11) {
message: 'Failed to connect to {local-sql-host}:1433 - Cannot call write after a stream was destroyed',
code: 'ESOCKET'
}
debug State change: SentTLSSSLNegotiation -> Final
debug Connection lost - 99404:error:1425F102:SSL routines:ssl_choose_client_version:unsupported protocol:c:\ws\deps\o
penssl\openssl\ssl\statem\statem_lib.c:1929:
ConnectionError: Connection lost - 99404:error:1425F102:SSL routines:ssl_choose_client_version:unsupported protocol:c
:\ws\deps\openssl\openssl\ssl\statem\statem_lib.c:1929:
at ConnectionError (C:\workspace\api-v3\dist\webpack:\node_modules\tedious\lib\errors.js:13:1)
at Connection.socketError (C:\workspace\api-v3\dist\webpack:\node_modules\tedious\lib\connection.js:1262:1)
at Socket.<anonymous> (C:\workspace\api-v3\dist\webpack:\node_modules\tedious\lib\connection.js:1093:1)
at Socket.emit (events.js:210:5)
at emitErrorNT (internal/streams/destroy.js:92:8)
at emitErrorAndCloseNT (internal/streams/destroy.js:60:3)
at processTicksAndRejections (internal/process/task_queues.js:80:21)
[ERROR] 12:23:11 ConnectionError
忘れてください! encrypt
、暗号化されていません
@ bj9215今の
100万ありがとう!
私は同じ問題に遭遇しました。 このPRでは、node-mssqlが暗号化のデフォルトをfalseからtrueに変更したようです。
https://github.com/tediousjs/node-mssql/pull/977
@ataftのコメントは、私の問題の解決にも役立ちました。「encrypt」をfalseに設定すると、問題が修正されました。
@ crazyx13thありがとう、これは私を助けました
忘れてください!
encrypt
、〜暗号化されていない〜
これは、1週間で修正しようとするとどうなりますか。
エラーメッセージは非常にわかりにくいです。
どのバージョンのNode.jsを実行していますか? 暗号化を有効にしていますか?
古いバージョンのSQLServerに接続しようとしている場合、古いバージョンのTLSを使用し、SQL Server2008とNode.jsバージョンの両方でサポートされている暗号スイートを使用するように暗号化設定を微調整する必要があります。使っている。
ありがとう。 これで問題は解決しました。 _ --tls-min-v1.0_フラグを追加しました
こんにちは私は同じエラーがあり、私はすでに彼らが以前にコメントしたことをやろうとしました、そして私は同じエラーを受け取り続けます
ConnectionError:{host}への接続に失敗しました:1433-ストリームが破棄された後、writeを呼び出すことができません
これは私の接続文字列です。
const config = {
ユーザー: 'ユーザー'、
パスワード: 'パスワード'、
サーバー: 'ホスト'、
データベース: 'name-dataBase'、
プール:{
最大:230、
最小:0
}
};
データベース接続オプション、オプションでこのパラメーターを使用しました:{暗号化:false}
最も参考になるコメント
忘れてください!
encrypt
、暗号化されていません