Ошибка при подключении к базе данных (Sql Server 2008 R2)
Я использую "mssql": "^ 5.1.0"
Я могу подключиться к localhost и SQL Server 2017
[Nest] 29632 - 29.07.2019, 21:34 [TypeOrmModule] Невозможно подключиться к базе данных. Повторная попытка (1) ... + 876 мс
ConnectionError: Не удалось подключиться к {{host}}: 1433 - Невозможно вызвать запись после уничтожения потока.
при подключении.
в Object.onceWrapper (events.js: 288: 20)
в Connection.emit (events.js: 200: 13)
в Connection.socketError (nrwlnode_modulestediouslibconnection.js: 1098: 12)
в Socket.
в Socket.emit (events.js: 205: 15)
при errorOrDestroy (внутренний / потоки / destroy.js: 107: 12)
в onwriteError (_stream_writable.js: 432: 5)
при onwrite (_stream_writable.js: 459: 5)
в doWrite (_stream_writable.js: 413: 11)
Пожалуйста, предложите какое-нибудь решение :)
Привет @ bj9215!
Какую версию утомительного вы используете? Mssql package.json использует устаревшую версию утомительного (текущая утомительная версия - v6.2.0). Попробуйте обновить это и посмотрите, поможет ли это? :)
На какой версии Node.js вы работаете? У вас включено шифрование?
Поскольку вы пытаетесь подключиться к более старой версии SQL Server, вам, скорее всего, потребуется настроить параметры шифрования, чтобы использовать более старую версию TLS и использовать набор шифров, который поддерживается как в SQL Server 2008, так и в версии 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 На данный момент закрывается. Не стесняйтесь повторно открыть, если у вас все еще есть эта проблема!
Миллион благодарностей !!
Я столкнулся с той же проблемой. Похоже, что node-mssql изменил шифрование по умолчанию с false на true в этом PR:
https://github.com/tediousjs/node-mssql/pull/977
Комментарий @ataft помог мне решить мою проблему - установка для параметра " false устранила мою проблему.
@ crazyx13th Спасибо, мне это помогло
забудь это!
encrypt
, не ~ зашифровано ~
Вот что, если пытаешься исправить за 1 неделю.
Сообщение об ошибке очень неразборчиво.
На какой версии Node.js вы работаете? У вас включено шифрование?
Поскольку вы пытаетесь подключиться к более старой версии SQL Server, вам, скорее всего, потребуется настроить параметры шифрования, чтобы использовать более старую версию TLS и использовать набор шифров, который поддерживается как в SQL Server 2008, так и в версии Node.js, которую вы используете. используют.
Спасибо. Это решило проблему. я только что добавил флаг _
Здравствуйте, у меня такая же ошибка, и я уже пытался сделать то, что они прокомментировали ранее, и я продолжаю получать ту же ошибку
ConnectionError: Не удалось подключиться к {host}: 1433 - Невозможно вызвать запись после того, как поток был уничтожен
Это моя строка подключения.
const config = {
пользователь: 'пользователь',
пароль: 'пароль',
сервер: 'хост',
база данных: 'имя-база данных',
бассейн: {
макс: 230,
мин: 0
}
};
Я просто использовал этот параметр в параметрах подключения к базе данных, параметры: {encrypt: false}
Самый полезный комментарий
забудь это!
encrypt
, незашифровано