Erro ao conectar ao banco de dados (Sql Server 2008 R2)
Estou usando "mssql": "^ 5.1.0"
Consigo me conectar ao localhost e ao SQL Server 2017
[Nest] 29632 - 29/07/2019, 21:34 [TypeOrmModule] Não foi possível conectar ao banco de dados. Tentando novamente (1) ... + 876 ms
ConnectionError: Falha ao conectar a {{host}}: 1433 - Não é possível chamar a gravação depois que um fluxo foi destruído
em Connection.
em Object.onceWrapper (events.js: 288: 20)
em Connection.emit (events.js: 200: 13)
em Connection.socketError (nrwlnode_modulestediouslibconnection.js: 1098: 12)
em Socket.
em Socket.emit (events.js: 205: 15)
em errorOrDestroy (internal / streams / destroy.js: 107: 12)
em onwriteError (_stream_writable.js: 432: 5)
em onwrite (_stream_writable.js: 459: 5)
em doWrite (_stream_writable.js: 413: 11)
Por favor, sugira alguma solução :)
Olá @ bj9215 ,
Qual versão de tedioso você está usando? Mssql package.json está usando uma versão desatualizada do tedioso (a versão tediosa atual é v6.2.0). Tente atualizar isso e veja se ajuda? :)
Em qual versão do Node.js você está executando? Você tem criptografia habilitada?
Como você está tentando se conectar a uma versão mais antiga do SQL Server, provavelmente precisará ajustar as configurações de criptografia para usar uma versão mais antiga do TLS e usar um ciphersuite compatível com o SQL Server 2008 e a versão Node.js que você estão usando.
@ bj9215 Você ainda está tendo esse problema?
Eu tenho um problema semelhante com "tedioso": "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
esqueça! encrypt
, não criptografado
@ bj9215 Fechando por enquanto. Sinta-se à vontade para reabrir se você ainda estiver tendo esse problema!
Um milhão de agradecimentos !!
Eu tive o mesmo problema. Parece que node-mssql mudou o padrão de criptografia de falso para verdadeiro neste PR:
https://github.com/tediousjs/node-mssql/pull/977
O comentário de @ataft me ajudou a resolver meu problema também - definir "encrypt" como false corrigiu meu problema.
@ crazyx13th Obrigado, isso me ajudou
esqueça!
encrypt
, não ~ criptografado ~
Isso é o que se tentar consertar em 1 semana.
A mensagem de erro é muito ininteligível.
Em qual versão do Node.js você está executando? Você tem criptografia habilitada?
Como você está tentando se conectar a uma versão mais antiga do SQL Server, provavelmente precisará ajustar as configurações de criptografia para usar uma versão mais antiga do TLS e usar um ciphersuite compatível com o SQL Server 2008 e a versão Node.js que você estão usando.
Obrigado. Isso resolveu o problema. acabei de adicionar _ --tls-min-v1.0 _ flag
Olá, estou com o mesmo erro e já tentei fazer o que comentei anteriormente e continuo recebendo o mesmo erro
ConnectionError: Falha ao conectar ao {host}: 1433 - Não é possível chamar a gravação depois que um fluxo foi destruído
Esta é minha string de conexão.
const config = {
usuário: 'usuário',
senha: 'senha',
servidor: 'host',
banco de dados: 'name-dataBase',
piscina: {
máx: 230,
min: 0
}
};
Acabei de usar este parâmetro nas opções de conexão do banco de dados, options: {encrypt: false}
Comentários muito úteis
esqueça!
encrypt
, nãocriptografado