2012-07-19 17 views
6

Tengo problemas para conectarme a una base de datos en una computadora en mi red usando node-sqlserver de Microsoft en node.js. Estoy usando sql server 2008 en un servidor de Windows 2008. Estoy ejecutando remotamente mi node.js en una máquina diferente dentro del mismo dominio. Creo que el problema tiene que ver con la cadena de conexión.Tiene problemas con node-sqlserver en node.js

var sql = require('node-sqlserver'); 
var conn_str = 'Driver={SQL Server Native Client 10.0};Server=(win08-srv);Database=DB;Trusted_Connection={Yes}'; 

Además, debe haber un nombre de usuario y contraseña para entrar en la base de datos, sin embargo, esto no estaba en el ejemplo de cadena de conexión del módulo de nodo.

//open the DB connection 
sql.open(conn_str, function (err, conn) { 
    if (err) { 
     console.log("Error opening the connection!"); 
    return; 
    } else { 
     console.log('Connection successful!'); 
     return; 
    } 
}); 

Siempre resulta en la impresión Error opening the connection! cuando se ejecuta.

+0

¿Su servidor sql permite conexiones remotas? ¿Win08-srv resolver? – Doa

+0

Gracias por la respuesta rápida. ¿Cómo puedo verificar que win08-srv resuelva? Lo agregué a mis conexiones en la configuración de ODBC en la máquina que ejecuta node.js y la conexión allí fue exitosa. –

+0

Solo mira si puedes hacer ping. Si eso se resuelve, asegúrese de que el servidor SQL esté configurado para aceptar conexiones remotas. Si eso aún no funciona, compruebe que tiene instalado el cliente de acceso nativo de SQL Server y que es la versión correcta (también tiene 10.0, 11.0). Si eso no ayuda, verifique que la base de datos (DB) sea correcta. Después de eso, no tengo ideas :) – Doa

Respuesta

0

La forma en que pude conectarme fue cambiando mi cadena de conexión. Tuve que cambiarlo para decir Trusted_Connection{No} y luego proporcionar las credenciales de inicio de sesión.

4

Tuve el mismo problema. Lo primero que hay que hacer con el fin de diagnosticar el problema es cambiar el código de ejemplo como bramido:

sql.open(conn_str, function (err, conn) { 
    if (err) { 
     console.log("Error opening the connection! Error was: " + err); 
    return; 
} 

Una vez que hice lo anterior, me sentí un poco más información sobre el error. Mi error fue:

"Error opening the connection! Error: IM002: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified" 

Esto básicamente significa que ha especificado un controlador incorrecto en la cadena de conexión. Resolví mi problema cambiando la versión del controlador de 11.0 a 10.0. Puede ver qué controladores están instalados localmente (si está en Windows, que asumo que es) yendo a:

Panel de control> Herramientas administrativas> Orígenes de datos (ODBC)> Controladores (pestaña).

Busque el SQL Server Native Client y vea el número de versión. Si no tiene este controlador instalado, deberá descargarlo.

+0

ergh! No puedo creer que eso sea todo, cambiar 11 a 10 también lo solucionó. – daniellmb

+0

Las soluciones simples siempre son las mejores :) –

0

Prueba esta cadena de conexión para que pueda especificar un nombre de usuario y contraseña combinación obviamente adaptarse a la configuración de

conn_str var = "Driver = {SQL Server Native Client 10.0}; Servidor = Texas; Database = NodeMassive; Uid = WebDev; Pwd = desarrollador1; ";