Tedious: No se pudo conectar a sqlexpress local, pero se puede conectar en el estudio de administración

Creado en 30 nov. 2017  ·  4Comentarios  ·  Fuente: tediousjs/tedious

Esto me sucedió hace un tiempo, pero al habilitar tcp / ip parecía solucionarlo, pero ahora no puedo conectarme de nuevo y no puedo entender por qué. Tcp parece estar habilitado en el administrador de configuración. Por favor, ¿estoy haciendo algo mal?

Como solicitud de función, sería bueno tener mejores comentarios si lo estamos haciendo mal o, si es posible, hacer que sea tedioso, use la misma lógica para conectarse como sql-server management studio.

Esto es con sql-server express 2008r2, [email protected]

var Connection = require('tedious').Connection;
var config = {
  userName: 'myuser',
  password: 'password',
  server: 'localhost',
  options: {
      database: 'testdb',
      instanceName: 'sqlexpress'
  }
}
var connection = new Connection(config);
connection.on('connect', function(err) {
  if (err) {
    console.log(err);
  } else {
    console.log('Connected');
  }
});
{ ConnectionError: Failed to connect to localhost:undefined in 15000ms
    at ConnectionError (C:\work\sqltest\node_modules\tedious\lib\errors.js:12:12)
    at Connection.connectTimeout (C:\work\sqltest\node_modules\tedious\lib\connection.js:789:28)
    at ontimeout (timers.js:475:11)
    at tryOnTimeout (timers.js:310:5)
    at Timer.listOnTimeout (timers.js:270:5)
  message: 'Failed to connect to localhost:undefined in 15000ms',
  code: 'ETIMEOUT' }

image

^ esto funciona bien

Comentario más útil

Muchas gracias, era solo que el servicio del navegador de SQL Server no se inició. Supongo que Management Studio debe hacer algo de magia cuando se conecta a localhost.

Todos 4 comentarios

options.instanceName
El nombre de la instancia a la que conectarse. El servicio del navegador de SQL Server debe estar ejecutándose en el servidor de la base de datos y el puerto UDP 1444 en el servidor de la base de datos debe estar accesible.

@spacem ya que está usando options.instanceName , ¿puede verificar las condiciones anteriores? Si esos no están satisfechos, intente usar options.port lugar.

Failed to connect es un error genérico, también puede notar mensajes casi similares en otros controladores de base de datos, si la instancia o el puerto son incorrectos. Los mensajes de error con detalles más útiles están disponibles solo después de que la conexión se realice correctamente, ya que el controlador no tiene muchos detalles antes de eso 😅

Muchas gracias, era solo que el servicio del navegador de SQL Server no se inició. Supongo que Management Studio debe hacer algo de magia cuando se conecta a localhost.

Tedious Connect básicamente busca que el navegador de SQL Server y el modo de Agente de SQL Server estén activados con TCP habilitado para los protocolos.

Entonces, si alguno de los servicios o puertos está deshabilitado, solicita una excepción de tiempo de espera

Seguí las instrucciones en esta respuesta SO y funcionó para mí:

  • Habilitar e iniciar el navegador de SQL Server
  • Habilitar el protocolo TCP/IP para SQLEXPRESS

    • Puede ejecutar el Administrador de configuración de SQL Server con uno de los comandos que se enumeran en esta página .

      Screenshot

¿Fue útil esta página
0 / 5 - 0 calificaciones