2012-05-09 16 views
5

Ich habe einen lokalen MS SQL Server und ich versuche, mit JTDS in Java zu verbinden. Hier ist die Verbindungszeichenfolge:Verbindung zu lokalen MS SQL Server

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

Und die Server-Eigenschaften:
Name: USER-PC \ SQLEXPRESS
Stammverzeichnis: c: \ Programme \ Microsoft SQL Server \ MSSQL11.SQLEXPRESS \ MSSQL

Ich bekomme einen Exception in thread "main" java.sql.SQLException: Network error IOException: Connection refused: connect Fehler.

Wie kann ich das beheben?

+0

Haben Sie hier gesucht? http://www.connectionstrings.com/ –

+0

Connectionstrings ... Service nicht verfügbar. HTTP Error 503. Dieser Dienst ist nicht verfügbar. –

+0

"Verbindung verweigert" bedeutet normalerweise, dass entweder nichts an diesem Port zu hören ist oder eine Firewall die Verbindung aktiv blockiert. Da du dich mit localhost verbindest, würde ich Ersteres erraten. Versuchen Sie, sich mit einem "nativen" SQL Server-Tool (d. H. Management Studio oder sqlcmd) zu verbinden, um es auf die einfachste Sache zu reduzieren, die Sie ausprobieren können. –

Antwort

10

Folgendes überprüfen:

  • Sie gemischten Sicherheitsmodus aktiviert haben, das heißt, so dass Sie mit Benutzername/Passwort verbinden können (und nicht mit dem Windows-Authentifizierung)
  • Das TCP/IP-Protokoll aktiviert ist. Öffnen Sie den SQL Server-Konfigurationsmanager, und wählen Sie in der SQL Server-Netzwerkkonfiguration Protokolle und TCP/IP aktivieren aus.
  • Versuche vorbei nur ein String zu getConnection in dieses Format:

    DriverManager.getConnection("jdbc:jtds:sqlserver://localhost:1433/stock;instance=SQLEXPRESS;user=sa;password=password") 
    
  • Wenn Sie dieses Format verwenden (Benennung der Instanz), dann der SQL Server-Browser-Dienst benötigt (in Services) ausgeführt werden. Wenn dies ausgegraut ist, ist der Dienst wahrscheinlich deaktiviert, also aktivieren Sie ihn und starten Sie ihn dann.

+0

mit dieser Änderung ist der Fehler jetzt "Ausnahme in Thread" main "java.sql.SQLException: Kann keine Informationen aus SQL Server: localhost.' – Mike

+0

Haben Sie eine Firewall? –

+0

Haben Sie definitiv TCP/IP aktiviert? Siehe http://jtds.sourceforge.net/faq.html#instanceGetInfo –

0

Port 1433 ist der Port, der von der Standardinstanz verwendet wird. Sie verwenden SQLEXPRESS, eine benannte Instanz. Ihre Verbindungszeichenfolge sollte etwa Folgendes enthalten:

sqlserver://localhost\SQLEXPRESS 
0

Der SQL Server-Browserdienst ist standardmäßig deaktiviert. Wenn Sie die .Net-App entwickeln, müssen Sie SQLBrowser nicht starten, aber wenn Sie JTDS in Java verwenden, müssen Sie es starten.