JDBC-Verbindung fehlgeschlagen, Fehler: TCP / IP-Verbindung zum Host fehlgeschlagen

84

Ich möchte eine Java-Klassendatei mit SQL Server 2012 verbinden. Ich habe mich mit SQL Server-Authentifizierung angemeldet. Aber ich erhalte einen Fehler in der Konnektivität.

FEHLER: Die TCP / IP-Verbindung zum Host 127.0.0.1, Port 1433 ist fehlgeschlagen. Fehler: "Verbindung abgelehnt: Verbindung herstellen. Überprüfen Sie die Verbindungseigenschaften. Stellen Sie sicher, dass eine Instanz von SQL Server auf dem Host ausgeführt wird und TCP / IP-Verbindungen am Port akzeptiert. Stellen Sie sicher, dass TCP-Verbindungen zum Port nicht von einer Firewall blockiert werden . ".

Mein Code ---

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");  //1. Register your driver
//2. get the connection object
//Connection con = DriverManager.getConnection("jdbc:sqlserver://localhost;databaseName=aysha","sa","admin");
Connection con = DriverManager.getConnection("jdbc:sqlserver://127.0.0.1;databaseName=aysha","user=sa","password=admin");
 //"jdbc:sqlserver://127.0.0.1:1433; Instance=SQL2008;" +       "databaseName=MB;user=sa;password=123;";
//Connection con = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=aysha","sa" , "password");
//3. Prepare a statement
Statement stmt = con.createStatement();
//4. Write the query`
String sql = "Select * from employee";
//5. Execute the statement and 
ResultSet rs = stmt.executeQuery(sql);
//6. Process the result set

while (rs.next())
{
    System.out.println(rs.getInt(1));
}
Aysha Nijhawan
quelle
Der lokale Computer hat sich geweigert, eine Verbindung zum Port 1433 herzustellen. Dies ist wahrscheinlich ein Firewall-Problem.
Stellen Sie

Antworten:

206
  1. Öffnen Sie den SQL Server-Konfigurationsmanager und erweitern Sie die SQL Server 2012-Netzwerkkonfiguration.
  2. Klicken Sie auf Protokolle für Instanzname, stellen Sie sicher, dass TCP / IP im rechten Bereich aktiviert ist, und doppelklicken Sie auf TCP / IP.
  3. Beachten Sie auf der Registerkarte Protokoll den Wert des Elements Alle abhören.
  4. Klicken Sie auf die Registerkarte IP-Adressen: Wenn der Wert von Listen All Ja lautet, ist die TCP / IP-Portnummer für diese Instanz von SQL Server 2012 der Wert des Elements TCP Dynamic Ports unter IPAll. Wenn der Wert von Listen All nein ist, ist die TCP / IP-Portnummer für diese Instanz von SQL Server 2012 der Wert des Elements TCP Dynamic Ports für eine bestimmte IP-Adresse.
  5. Stellen Sie sicher, dass der TCP-Port 1433 ist.
  6. OK klicken.

Wenn Sie weitere Fragen haben, lassen Sie es mich bitte wissen.

Vielen Dank.

Prinz
quelle
14
Vergessen Sie nicht, Ihre SQL-Instanz nach den Änderungen neu zu starten.
JimGoods
16
Starten Sie Ihre SQL-Instanz wie folgt neu: Klicken Sie im "SQL Server Configuration Manager" -> "SQL Server 2012-Dienste" mit der rechten Maustaste auf "SQL Server" und wählen Sie "Neustart".
Entwickler Marius Žilėnas
10
Achten Sie darauf, dass der TCP-Port unter IPAII 1433 ist.
Entwickler Marius Žilėnas
Oder ändern Sie die Portnummer in Ihrer Anwendung auf den Wert der dynamischen TCP-Ports unter IPAII. Das habe ich getan, damit das funktioniert, weil ich den Wert nicht ändern kann.
AlieneilA
111

Einfache Lösung

Gehen Sie zu Start-> Alle Programme-> Microsoft SQL Server 2012-> Konfigurationstool -> Klicken Sie auf SQL Server Configuration Manager -> Erweitern Sie das Feld SQL Server-Netzwerkkonfiguration-> Protokoll -> TCP / IP aktivieren

Doppelklicken Sie auf TCP / IP und gehen Sie zu IP-Adressen. Tippen Sie auf und setzen Sie Port 1433 unter TCP-Port.

Geben Sie hier die Bildbeschreibung ein

Md. Naushad Alam
quelle
2
Nachdem ich diese Schritte ausgeführt hatte, musste ich meinen Server stoppen und neu starten, damit er funktionierte. Vielen Dank!
Bluefox
16

Der Fehler ist selbsterklärend:

  • Überprüfen Sie, ob Ihr SQL Server tatsächlich betriebsbereit ist
  • Überprüfen Sie, ob der Hostname, der Benutzername und das Kennwort des SQL Servers korrekt sind
  • Überprüfen Sie, ob keine Firewall-Regel die TCP-Verbindung zu Port 1433 blockiert
  • Überprüfen Sie, ob der Host tatsächlich erreichbar ist

Eine gute Prüfung, die ich häufig verwende, ist die Verwendung von Telnet, z. B. an einer Windows-Eingabeaufforderung:

telnet 127.0.0.1 1433

Wenn ein leerer Bildschirm angezeigt wird, wird angezeigt, dass die Netzwerkverbindung erfolgreich hergestellt wurde, und es handelt sich nicht um ein Netzwerkproblem. Wenn Sie die Meldung "Verbindung zum Host konnte nicht hergestellt werden" erhalten, liegt ein Netzwerkproblem vor

Gerrytan
quelle
1
Ich habe versucht, Telnet 127.0.01 1433, es heißt Verbindung zu 127.0.01` konnte die Verbindung zum Host nicht öffnen oder Port 1433 Verbindung fehlgeschlagen
Aysha Nijhawan
1
Daher ist es sehr wahrscheinlich, dass Sie den Server nicht installiert haben, der Server nicht ausgeführt wird oder eine Firewall die Verbindung verhindert. Dies ist normalerweise kein Java-Programm-Problem
Gerrytan
11

Gehen Sie zu Start-> Alle Programme-> Microsoft SQL Server 2012-> Konfigurationstool -> Klicken Sie auf SQL Server Configuration Manager. Geben Sie hier die Bildbeschreibung ein

Wenn Sie sehen, dass der SQL Server / SQL Server-Browserstatus "gestoppt" ist, klicken Sie mit der rechten Maustaste auf SQL Server / SQL Server-Browser und klicken Sie auf Start. In einigen Fällen kann der oben genannte Status beendet werden, obwohl die TCP-Verbindung zu Port 1433 zugewiesen ist.

Abdur Rahman
quelle
Hat mir viel geholfen. Der Browser wurde deaktiviert. Dies ist die Schlüsselkomponente, die ausgeführt werden muss, um Clientverbindungen herzustellen.
Mayur
3

Wie der Fehler besagt, müssen Sie sicherstellen, dass Ihr SQL Server ausgeführt wird und Port 1433 überwacht. Wenn der Server ausgeführt wird, müssen Sie überprüfen, ob eine Firewall-Regel die Verbindung an Port 1433 ablehnt.

Hier sind die Befehle, die zur Fehlerbehebung hilfreich sein können:

  1. Verwenden netstat -aSie diese Option, um zu überprüfen, ob der SQL Server den gewünschten Port überwacht
  2. Wie Gerrytan in der Antwort erwähnt hat, können Sie versuchen, dies telnetauf dem Host und dem Port zu tun
Juned Ahsan
quelle
Ich denke, OP verwendet SQL Server nicht MySQL
SpringLearner
@AyshaNijhawan Hast du den Port überprüft, den es abhört? Versuchen Sie auch, über die Eingabeaufforderung oder einen SQL-Client mit derselben IP / demselben Port und denselben Anmeldeinformationen eine Verbindung zum SQL Server herzustellen.
Juned Ahsan
Port ist 1433, und ich habe versucht, indem ich es in Verbindungszeichenfolge setzen. Named Pipes, Speicher und TCP / IP sind in SQL Server N / W config -> Protokolle für MSSQLSERVER
Aysha Nijhawan
0

wichtig:
Nach Änderungen oder neuen Einstellungen müssen Sie den SQLSERVERDienst neu starten . lauf services.mscweiterWindows

Mahdi
quelle
0

Wenn Sie eine benannte Instanz verwenden, ist der Port, den Sie wahrscheinlich verwenden, 1434 anstelle von 1433. Überprüfen Sie dies daher auch mit Telnet oder Netstat.

Toshihiko
quelle
0

Öffnen Sie den Ordner% windir% \ System32 und suchen Sie SQLServerManagerXX.msc

Zum Beispiel:

C: \ Windows \ System32 \ SQLServerManager14.msc

Gehen Sie zu den Protokolleinstellungen und aktivieren Sie den TCP / IP-Port standardmäßig auf 1433

Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein

Ali Karaca
quelle