Error al conectarse a la base de datos (Sql Server 2008 R2)
Estoy usando "mssql": "^ 5.1.0"
Puedo conectarme a localhost y SQL Server 2017
[Nest] 29632 - 29/07/2019, 9:34 PM [TypeOrmModule] No se puede conectar a la base de datos. Reintentando (1) ... + 876ms
ConnectionError: No se pudo conectar a {{host}}: 1433 - No se puede llamar a escribir después de que se destruyó una transmisión
en la conexión.
en Object.onceWrapper (events.js: 288: 20)
en Connection.emit (events.js: 200: 13)
en Connection.socketError (nrwlnode_modulestediouslibconnection.js: 1098: 12)
en Socket.
en Socket.emit (events.js: 205: 15)
en errorOrDestroy (interno / streams / destroy.js: 107: 12)
en onwriteError (_stream_writable.js: 432: 5)
en onwrite (_stream_writable.js: 459: 5)
en doWrite (_stream_writable.js: 413: 11)
Por favor sugiera alguna solución :)
Hola @ bj9215 ,
¿Qué versión de tedious estás usando? Mssql package.json está usando una versión desactualizada de tedious (la versión actual de tedious es v6.2.0). Intente actualizar eso y vea si ayuda. :)
¿En qué versión de Node.js estás ejecutando? ¿Tiene el cifrado habilitado?
Mientras intenta conectarse a una versión anterior de SQL Server, lo más probable es que necesite modificar la configuración de cifrado para usar una versión anterior de TLS y usar un conjunto de cifrado que sea compatible con SQL Server 2008 y la versión de Node.js. están usando.
@ bj9215 ¿
Tengo un problema similar con "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
¡olvídalo! encrypt
, no cifrado
@ bj9215 Cerrando por ahora. ¡No dudes en volver a abrir si aún tienes este problema!
¡¡Un millón de gracias !!
Me encontré con el mismo problema. Parece que node-mssql cambió el cifrado predeterminado de falso a verdadero en este PR:
https://github.com/tediousjs/node-mssql/pull/977
El comentario de @ataft también me ayudó a resolver mi problema: configurar "cifrar" en falso solucionó mi problema.
@ crazyx13th Gracias, esto me ayudó
¡olvídalo!
encrypt
, no ~ encriptado ~
Esto es lo que sucede si intenta arreglarlo en 1 semana.
El mensaje de error es muy ininteligible.
¿En qué versión de Node.js estás ejecutando? ¿Tiene el cifrado habilitado?
Mientras intenta conectarse a una versión anterior de SQL Server, lo más probable es que necesite modificar la configuración de cifrado para usar una versión anterior de TLS y usar un conjunto de cifrado que sea compatible con SQL Server 2008 y la versión de Node.js. están usando.
Gracias. Esto resolvió el problema. Acabo de agregar la bandera _
Hola tengo el mismo error y ya trate de hacer lo que han comentado anterior mente y me sigue saliendo el mismo error
ConnectionError: Failed to connect to {host}:1433 - Cannot call write after a stream was destroyed
Esta es mi cadena de conexión.
const config = {
user: 'user',
password: 'password',
server: 'host',
database: 'name-dataBase',
pool:{
max: 230,
min: 0
}
};
Acabo de usar este parámetro en las opciones de conexión de la base de datos, opciones: {cifrar: falso}
Comentario más útil
¡olvídalo!
encrypt
, nocifrado