2012-05-09 21 views
5

Tengo un servidor MS SQL local y estoy tratando de conectarme usando JTDS en java. Aquí está la cadena de conexión:conectando a MS SQL Server local

Class.forName("net.sourceforge.jtds.jdbc.Driver"); 
Connection conn = DriverManager.getConnection("jdbc:jtds:sqlserver://localhost:1433/stock","sa","password"); 

Y las propiedades del servidor:
nombre: USUARIO-PC \ SQLEXPRESS directorio raíz
: c: \ Archivos de programa \ Microsoft SQL Server \ MSSQL11.SQLEXPRESS \ MSSQL

Me aparece un error Exception in thread "main" java.sql.SQLException: Network error IOException: Connection refused: connect.

¿Cómo puedo remediar esto?

+0

¿Has visto aquí? http://www.connectionstrings.com/ –

+0

Connectionstrings ... Servicio no disponible. HTTP Error 503 El servicio no está disponible. –

+0

"Conexión rechazada" generalmente significa que no hay nada escuchando en ese puerto o que un firewall está bloqueando activamente su conexión. Como te estás conectando con el localhost, supongo que el primero. Intente conectarse con una herramienta SQL Server "nativa" (es decir, Management Studio o sqlcmd) para reducirla a lo más simple que pueda intentar. –

Respuesta

10

Comprobar lo siguiente:

  • ha activado la seguridad de modo mixto, es decir, para que pueda conectar con nombre de usuario/contraseña (en lugar de utilizar la autenticación de Windows)
  • El protocolo TCP/IP está habilitado. Abra el Administrador de configuración de SQL Server, luego, en Configuración de red de SQL Server, seleccione Protocolos y Habilite TCP/IP.
  • Trate de pasar sólo una cadena a getConnection usando este formato:

    DriverManager.getConnection("jdbc:jtds:sqlserver://localhost:1433/stock;instance=SQLEXPRESS;user=sa;password=password") 
    
  • Si está usando este formato de (nombre del ejemplo) entonces el servicio Explorador de SQL Server debe estar en ejecución (de Servicios). Si esto está atenuado, entonces el Servicio probablemente esté deshabilitado, así que habilítelo y luego inícielo.

+0

con ese cambio el error ahora es 'Exception in thread" main "java.sql.SQLException: No se puede obtener información de SQL Server: localhost. ' – Mike

+0

¿Tiene un firewall? –

+0

¿Ha habilitado definitivamente TCP/IP? Ver http://jtds.sourceforge.net/faq.html#instanceGetInfo –

0

El puerto 1433 es el puerto utilizado por la instancia predeterminada. Está utilizando SQLEXPRESS, que es una instancia con nombre. Su cadena de conexión debe incluir algo como:

sqlserver://localhost\SQLEXPRESS 
0

El servicio de SQL Server Browser está deshabilitado por defecto. Si está desarrollando aplicaciones .Net, no necesita iniciar SQLBrowser, pero si está usando JTDS en Java, necesitará que se inicie.

Cuestiones relacionadas