Netzwerkbezogener oder instanzspezifischer Fehler beim Herstellen einer Verbindung mit SQL Server

Gilt für:   SQL Server

Wenn Sie eine Verbindung mit einer SQL Server Instanz herstellen, wird möglicherweise eine oder mehrere der folgenden Fehlermeldungen angezeigt. Dieser Artikel enthält einige Schritte, mit denen Sie diese Fehler beheben können, die in der Reihenfolge der Probleme von einfach bis komplex bereitgestellt werden.

Fehlermeldungen

Die vollständigen Fehlermeldungen variieren je nach der Clientbibliothek, die in der Anwendung und der Serverumgebung verwendet wird. Sie können die folgenden Details überprüfen, um festzustellen, ob eine der folgenden Fehlermeldungen auftritt:

provider: Named Pipes Provider, Fehler: 40 – Verbindung mit SQL Server konnte nicht geöffnet werden (Microsoft SQL Server, Fehler: 53) Beim Herstellen einer Verbindung mit SQL Server ist ein netzwerkbezogener oder instanzspezifischer Fehler aufgetreten. Der Server wurde nicht gefunden oder war nicht zugänglich. Stellen Sie sicher, dass der Instanzname korrekt ist und dass SQL Server so konfiguriert ist, dass Remoteverbindungen zugelassen werden.
provider: Named Pipes Provider, Fehler: 40 – Verbindung mit SQL Server konnte nicht geöffnet werden (Microsoft SQL Server, Fehler: 53)
provider: TCP Provider, error: 0 - No such host is known. (Microsoft SQL Server, Fehler: 11001)

provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified Beim Herstellen einer Verbindung mit SQL Server ist ein netzwerkbezogener oder instanzspezifischer Fehler aufgetreten. Der Server wurde nicht gefunden oder war nicht zugänglich. Stellen Sie sicher, dass der Instanzname korrekt ist und dass SQL Server so konfiguriert ist, dass Remoteverbindungen zugelassen werden.
provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified

Anmeldetimeout abgelaufen SQL Server Native Client Datenverknüpfungsfehler
[Microsoft SQL Server Native Client 10.0]: Login timeout expired
[Microsoft SQL Server Native Client 10.0]: A network-related or instance-specific error has occurred while establishing a connection to SQL Server. Server is not found or not accessible. Check if instance name is correct and if SQL Server is configured to allow remote connections. For more information see SQL Server Books Online.
[Microsoft SQL Server Native Client 10.0]: SQL Server Network Interfaces: Error Locating Server/Instance Specified [xFFFFFFFF].

Ein Verbindungsversuch ist fehlgeschlagen, weil die verbundene Partei nach einem bestimmten Zeitraum nicht ordnungsgemäß geantwortet hat oder die hergestellte Verbindung fehlgeschlagen ist, weil der verbundene Host nicht reagiert hat. Beim Herstellen einer Verbindung mit SQL Server ist ein netzwerkbezogener oder instanzspezifischer Fehler aufgetreten. Der Server wurde nicht gefunden oder war nicht zugänglich. Stellen Sie sicher, dass der Instanzname korrekt ist und dass SQL Server so konfiguriert ist, dass Remoteverbindungen zugelassen werden.
Anbieter: TCP-Anbieter, Fehler: 0
Ein Verbindungsversuch ist fehlgeschlagen, weil die verbundene Partei nach einem bestimmten Zeitraum nicht ordnungsgemäß reagiert hat oder die hergestellte Verbindung fehlgeschlagen ist, weil der verbundene Host nicht reagiert hat.
Microsoft SQL Server, Fehler: 10060

provider: Named Pipes Provider, Fehler: 40 – Verbindung zu SQL Server Beim Herstellen einer Verbindung mit SQL Server ist ein netzwerkbezogener oder instanzspezifischer Fehler aufgetreten. Der Server wurde nicht gefunden oder war nicht zugänglich. Stellen Sie sicher, dass der Instanzname korrekt ist und dass SQL Server so konfiguriert ist, dass Remoteverbindungen zugelassen werden.
provider: Named Pipes Provider, Fehler: 40 – Verbindung zu SQL Server
Microsoft SQL Server, Fehler: 53
Der Netzwerkpfad wurde nicht gefunden.

[Microsoft] [SQL Server Native Client 11.0]TCP-Anbieter: Es konnte keine Verbindung hergestellt werden, weil der Zielcomputer sie aktiv abgelehnt hat. SQL Server Native Client Datenverknüpfungsfehler
[Microsoft] [SQL Server Native Client 11.0]TCP-Anbieter: Es konnte keine Verbindung hergestellt werden, weil der Zielcomputer sie aktiv abgelehnt hat.
[Microsoft] [SQL Server Native Client 11.0]Das Anmeldetimeout ist abgelaufen.
[Microsoft] [SQL Server Native Client 11.0]Beim Herstellen einer Verbindung mit SQL Server ist ein netzwerkbezogener oder instanzspezifischer Fehler aufgetreten. Der Server wurde nicht gefunden oder kann nicht aufgerufen werden. Überprüfen Sie, ob der Instanzname korrekt ist und ob SQL Server so konfiguriert ist, dass Remoteverbindungen zugelassen werden. Weitere Informationen finden Sie unter SQL Server Bücher Online.

<a name="sql-server-does-not-exist-or-access-denied">"SQL Server ist nicht vorhanden oder zugriff verweigert"

Dieser Fehler bedeutet in der Regel, dass der Client die SQL Server Instanz nicht finden kann. Dieses Problem tritt auf, wenn mindestens eines der folgenden Probleme vorhanden ist:

  • Der Name des Computers, auf dem SQL Server gehostet wird, ist falsch.
  • Die Instanz löst die richtige IP nicht auf.
  • Die TCP-Portnummer ist nicht richtig angegeben.

Hinweis

Informationen zur Behandlung von Verbindungsproblemen in Szenarien mit hoher Verfügbarkeit finden Sie in den folgenden Artikeln:

Sammeln von Informationen zur Problembehandlung des Fehlers

Es wird empfohlen, die in diesem Abschnitt aufgeführten Informationen mithilfe einer der folgenden Optionen zu sammeln, bevor Sie mit den tatsächlichen Schritten zur Problembehandlung des Fehlers fortfahren.

Option 1: Verwenden des SQL-Überprüfungstools zum Sammeln der erforderlichen Informationen

Wenn Sie sich lokal beim SQL Server Computer anmelden können und Administratorzugriff haben, verwenden Sie SQLCheck aus dem Microsoft SQL Networking GitHub-Repository. Dieses Tool enthält die meisten Informationen, die für die Problembehandlung in einer Datei erforderlich sind. Weitere Informationen zur Verwendung des Tools und der gesammelten Informationen finden Sie auf der Startseite des Tools. Sie können auch die Seite mit den empfohlenen Voraussetzungen und Prüflisten überprüfen.

Option 2: Sammeln Der Daten einzeln mithilfe der folgenden Verfahren

Abrufen des Instanznamens aus Configuration Manager

Verwenden Sie auf dem Server, der die SQL Server Instanz hostet, SQL Server-Konfigurations-Manager, um den Instanznamen zu überprüfen:

Hinweis

Configuration Manager wird automatisch auf dem Computer installiert, wenn SQL Server installiert wird. Die Anweisungen zum Starten Configuration Manager variieren geringfügig je nach Versionen von SQL Server und Windows. Versionsspezifische Details finden Sie unter SQL Server-Konfigurations-Manager.

  1. Melden Sie sich bei dem Computer an, auf dem die Instanz von SQL Server gehostet wird.

  2. Starten Sie SQL Server-Konfigurations-Manager.

  3. Wählen Sie im linken Bereich SQL Server Dienste aus.

  4. Überprüfen Sie im rechten Bereich den Namen der Instanz des Datenbankmoduls.

    • SQL SERVER (MSSQLSERVER) gibt eine Standardinstanz von SQL Server an. Der Name der Standardinstanz lautet <computer name>.
    • SQL SERVER (<instance name>) gibt eine benannte Instanz von SQL Server an. Der Name der benannten Instanz lautet <computer name>\<instance name>.

Abrufen der IP-Adresse des Servers

Mit den folgenden Schritten können Sie die IP-Adresse des Computers abrufen, auf dem die Instanz von SQL Server gehostet wird.

  1. Wählen Sie im Startmenü die Option "Ausführen" aus. Geben Sie im Fenster "Ausführen " "cmd" ein, und wählen Sie dann "OK" aus.

  2. Geben Sie im Eingabeaufforderungsfenster "ipconfig/all " ein, und drücken Sie dann die EINGABETASTE. Notieren Sie sich die IPv4-Adresse und die IPv6-Adresse.

    Hinweis

    SQL Server können eine Verbindung mithilfe des IP-Protokolls der Version 4 oder des PROTOKOLLS DER IP-Version 6 herstellen. Ihr Netzwerk kann eine oder beides zulassen.

Abrufen des TCP-Ports der Instanz

In den meisten Fällen stellen Sie mithilfe des TCP-Protokolls eine Verbindung mit dem Datenbankmodul auf einem anderen Computer her. Führen Sie die folgenden Schritte aus, um den TCP-Port der Instanz abzurufen:

  1. Verwenden Sie SQL Server Management Studio auf dem Computer, auf dem SQL Server ausgeführt wird, und stellen Sie eine Verbindung mit der Instanz von SQL Server her. Erweitern Sie in Objekt-Explorer die Option "Verwaltung", erweitern Sie SQL Server Protokolle, und doppelklicken Sie dann auf das aktuelle Protokoll.

  2. Wählen Sie in der Protokolldateianzeige auf der Symbolleiste "Filtern " aus. Geben Sie im Textfeld "Nachricht enthält " den Server ein, auf dem der Server lauscht, wählen Sie "Filter übernehmen" und dann "OK" aus.

  3. Eine Nachricht wie "Server lauscht auf [ "any" <ipv4> 1433] sollte aufgelistet werden.

    Diese Meldung gibt an, dass die Instanz von SQL Server alle IP-Adressen auf diesem Computer (für IP-Version 4) und TCP-Port 1433 überwacht. (TCP-Port 1433 ist in der Regel der Port, der vom Datenbankmodul oder der Standardinstanz von SQL Server verwendet wird. Nur eine Instanz von SQL Server kann diesen Port verwenden. Wenn mehrere Instanzen von SQL Server installiert sind, müssen einige Instanzen andere Portnummern verwenden.) Notieren Sie sich die Portnummer, die von der SQL Server Instanz verwendet wird, mit der Sie eine Verbindung herstellen möchten.

    Hinweis

    • Die IP-Adresse 127.0.0.1 ist wahrscheinlich aufgeführt. Sie wird als Loopbackadapteradresse bezeichnet. Nur Prozesse auf demselben Computer können die IP-Adresse zum Herstellen einer Verbindung verwenden.
    • Sie können das SQL Server Fehlerprotokoll auch mithilfe eines Text-Editors anzeigen. Standardmäßig befindet sich das Fehlerprotokoll unter den Dateien "Program Files\Microsoft SQL Server\MSSQL.n\MSSQL\LOG\ERRORLOG" und "ERRORLOG.n". Weitere Informationen finden Sie unter Anzeigen des SQL Server Fehlerprotokolls.

Schritt 1: Überprüfen, ob die Instanz ausgeführt wird

Option 1: Verwenden der Ausgabedatei des SQLCheck-Tools

  1. Durchsuchen Sie die Ausgabe aus der SQLCheck-Datei nach "SQL Server Informationen".

  2. Suchen Sie im Abschnitt "Dienste von Interesse" Ihre SQL Server Instanz unter den Spalten "Name" und "Instanz" (für benannte Instanzen) und überprüfen Sie ihren Status mithilfe der Spalte "Gestartet". Wenn der Wert "True" ist, werden die Dienste gestartet. Andernfalls wird der Dienst derzeit nicht ausgeführt.

  3. Wenn der Dienst nicht ausgeführt wird, starten Sie den Dienst mithilfe von SQL Server Management Studio, SQL Server Configuration Manager, PowerShell oder Services-Applet.

Option 2: Verwenden von SQL Server-Konfigurations-Manager

Um zu überprüfen, ob die Instanz ausgeführt wird, wählen Sie SQL Server Dienste in SQL Server-Konfigurations-Manager aus, und überprüfen Sie das Symbol durch die SQL Server Instanz.

  • Ein grüner Pfeil zeigt an, dass eine Instanz ausgeführt wird.
  • Ein rotes Quadrat gibt an, dass eine Instanz beendet wird.

Wenn die Instanz beendet wird, klicken Sie mit der rechten Maustaste auf die Instanz, und wählen Sie "Start" aus. Dann wird die Serverinstanz gestartet, und der Indikator wird zu einem grünen Pfeil.

Option 3: Verwenden von PowerShell-Befehlen

Sie können den folgenden Befehl in PowerShell verwenden, um den Status von SQL Server Diensten im System zu überprüfen:

Get-Service | Where {$_.status -eq 'running' -and $_.DisplayName -match "sql server*"}

Sie können den folgenden Befehl verwenden, um die Fehlerprotokolldatei nach der spezifischen Zeichenfolge "SQL Server ist jetzt für Clientverbindungen bereit. Dies ist eine Informationsnachricht; Es ist keine Benutzeraktion erforderlich.":

Get-ChildItem -Path "c:\program files\microsoft sql server\mssql*" -Recurse -Include Errorlog |select-string "SQL Server is now ready for client connections."

Schritt 2: Überprüfen, ob der SQL Server Browserdienst ausgeführt wird

Hinweis

Dieser Schritt ist nur für die Behandlung von Verbindungsproblemen mit benannten Instanzen erforderlich.

Option 1: Verwenden der Ausgabedatei des SQLCheck-Tools

  1. Durchsuchen Sie die Ausgabe aus der SQLCheck-Datei nach "SQL Server Informationen".

  2. Suchen Sie im Abschnitt "Dienste von Interesse" in der Spalte " Name " nach SQLBrowser, und überprüfen Sie den Status mithilfe der Spalte " Gestartet ". Wenn der Wert True ist, wird der Dienst gestartet. Andernfalls wird der Dienst derzeit nicht ausgeführt, und Sie müssen ihn starten. Weitere Informationen finden Sie unter "Start", "Stop", "Pause", "Resume", "restart SQL Server services".

Option 2: Verwenden von SQL Server-Konfigurations-Manager

Um eine Verbindung mit einer benannten Instanz herzustellen, muss der SQL Server Browserdienst ausgeführt werden. Suchen Sie in SQL Server-Konfigurations-Manager den SQL Server Browserdienst, und überprüfen Sie, ob er ausgeführt wird. Wenn er nicht ausgeführt wird, starten Sie den Dienst. Der SQL Server Browserdienst ist für Standardinstanzen nicht erforderlich.

Weitere Informationen zur Verwendung SQL Server Browserdiensts in Ihrer Umgebung finden Sie unter SQL Server Browserdienst.

Weitere Informationen zum Beenden und Starten von SQL Services finden Sie unter "Start", "Stop", "Pause", "Resume", "restart SQL Server services".

Hinweis

Wenn der SQL Server Browserdienst in Ihrer Umgebung nicht ausgeführt werden kann, finden Sie weitere Informationen unter Herstellen einer Verbindung mit der benannten SQL Server-Instanz ohne SQL Server Browserdienst.

Schritt 3: Überprüfen des Servernamens in der Verbindungszeichenfolge

Häufig treten Fehler auf, wenn ein falscher Servername in der Verbindungszeichenfolge angegeben wird. Stellen Sie sicher, dass der Servername dem Servernamen entspricht, den Sie in den vorherigen Schritten abgerufen haben.

Hinweis

Wenn Sie das SQLCheck-Tool verwenden, überprüfen Sie die NetBios Name/FQDN-Werte im Abschnitt "Computerinformationen " der Ausgabedatei.

Schritt 4: Überprüfen der Aliase auf den Clientcomputern

Aliase werden häufig in Clientumgebungen verwendet, wenn Sie eine Verbindung mit SQL Server mit einem alternativen Namen herstellen oder wenn Probleme bei der Namensauflösung im Netzwerk auftreten. Sie werden mithilfe von SQL Server-Konfigurations-Manager- oder Clientnetzwerkhilfsprogramm erstellt. Ein falscher Alias kann dazu führen, dass die Verbindungen aus Ihren Anwendungen eine Verbindung mit dem falschen Server herstellen, was zu einem Fehler führt. Verwenden Sie die folgenden Methoden, um nach falschen Aliasen zu suchen. Sie können auch ein Tool (z. B. SQLCHECK) auf dem Clientcomputer verwenden, um nach Aliasen und verschiedenen anderen Verbindungseinstellungen auf einem Clientcomputer zu suchen.

Hinweis

Die folgenden Optionen gelten nur für die Anwendungen, die SQL Server Native Client zum Herstellen einer Verbindung mit SQL Server verwenden.

Option 1: Verwenden der Ausgabedatei des SQLCheck-Tools

  1. Suchen Sie in der SQLCheck-Ausgabedatei nach den SQL-Aliasen der Zeichenfolge. (Diese Zeichenfolge befindet sich im Abschnitt "Clientsicherheit und Treiberinformationen " der Datei.)

  2. Überprüfen Sie die Einträge in der Tabelle. Wenn keine vorhanden sind, sind keine Aliase auf dem Computer vorhanden. Wenn ein Eintrag vorhanden ist, überprüfen Sie die Informationen, um sicherzustellen, dass der Servername und die Portnummer auf die richtigen Werte festgelegt sind.

Beispiel für die Ausgabe:
SQL-Aliase:

Alias Name   Protocol   Server Name     Port   32-bit 

----------   --------   ------------    ----   ------ 

prodsql      TCP        prod_sqlserver  1430      

Das obige Beispiel gibt an, dass prodsql es sich um einen Alias für eine SQL Server handelt, die an prod_sqlserver Port 1430 ausgeführt wird.

Option 2: Überprüfen von Aliasen in SQL Server-Konfigurations-Manager

  1. Erweitern Sie in SQL Server-Konfigurations-Manager SQL Server Native Client Konfiguration, und wählen Sie "Aliase" aus.
  2. Überprüfen Sie, ob Aliase für den Server definiert sind, mit dem Sie eine Verbindung herstellen möchten. Wenn die Aliase vorhanden sind, führen Sie die folgenden Schritte aus:
    1. Öffnen Sie den Eigenschaftenbereich des Alias.
    2. Benennen Sie den Wert im Feld "Aliasname " um (wenn Ihr Servername z. B. MySQL ist, benennen Sie ihn in MySQL_test um), und versuchen Sie die Verbindung erneut. Wenn die Verbindung funktioniert, ist Ihr Alias falsch und stammt möglicherweise aus einer alten Konfiguration, die nicht mehr benötigt wird. Wenn die Verbindung nicht funktioniert, benennen Sie den Alias wieder in den ursprünglichen Namen um, und fahren Sie mit dem nächsten Schritt fort.
    3. Überprüfen Sie die Verbindungsparameter für den Alias, und stellen Sie sicher, dass sie korrekt sind. Die folgenden häufigen Szenarien können Verbindungsprobleme verursachen:
      • Falsche IP-Adresse für das Serverfeld . Stellen Sie sicher, dass die IP-Adresse mit dem Eintrag in der SQL Server Fehlerprotokolldatei übereinstimmt.

      • Falscher Servername im Feld "Server ". Ihr Serveralias verweist z. B. auf den richtigen Servernamen. Die Verbindungen schlagen jedoch fehl, wenn der Wert des Servernamenparameters falsch ist.

      • Falsches Pipenamenformat (vorausgesetzt, Sie verwenden einen Named Pipes-Alias).

        • Beim Herstellen einer Verbindung mit einer Standardinstanz namens "Mydefaultinstance" sollte der Pipename "Mydefaultinstance\pipe\sql\query" lauten\\.
        • Beim Herstellen einer Verbindung mit einer benannten Instanz "MySQL\Named" sollte der Pipename "MySQL\pipe\MSSQL$Named\sql\query" lauten\\.

Option 3: Überprüfen von Aliasen in SQL Server Client Network Utility

  1. Öffnen Sie SQL Server Client Network Utility, indem Sie im Befehl "Ausführen" cliconfg.exe eingeben.
  2. Führen Sie Schritt 2 in Option 2 aus: Überprüfen von Aliasen in SQL Server-Konfigurations-Manager.

Schritt 5: Überprüfen der Firewallkonfiguration

Sie können die Firewallkonfiguration abhängig von der Standardinstanz oder benannten Instanz überprüfen.

Hinweis

Wenn Sie Firewalls von Drittanbietern in Ihrem Netzwerk verwenden, gelten die Konzepte weiterhin. Möglicherweise müssen Sie jedoch mit Ihrem Netzwerkadministrator zusammenarbeiten oder die Dokumentation des Firewallprodukts lesen, um weitere Informationen zum Konfigurieren der Firewall zu erhalten, um die erforderlichen Ports für die Kommunikation mit SQL Server zu ermöglichen.

Standardinstanz von SQL Server

Eine Standardinstanz wird in der Regel auf Port 1433 ausgeführt. Einige Installationen verwenden auch einen nicht standardmäßigen Port (außer 1433), um SQL-Instanzen auszuführen. Die Firewall kann beide Ports blockieren. Führen Sie die folgenden Schritte aus, um die Portnummer weiter zu überprüfen:

  1. Ermitteln Sie den Port, an dem Ihre SQL-Instanz ausgeführt wird. Weitere Informationen finden Sie unter Abrufen des TCP-Ports der Instanz.
  • Wenn Ihre SQL Server so konfiguriert ist, dass port 1433 überwacht wird, stellen Sie sicher, dass Firewalls im Netzwerk zwischen dem Client und dem Server Datenverkehr an diesem Port zulassen. Lesen Sie "Konfigurieren einer Windows-Firewall für den Zugriff auf das Datenbankmodul " und arbeiten Sie mit Ihrem Netzwerkadministrator zusammen, um die erforderlichen Lösungen zu implementieren.

  • Wenn Ihre SQL Server Standardinstanz 1433 nicht verwendet, versuchen Sie, die Portnummer von SQL Server mithilfe des Formats <servername>,<portnumber> an den Servernamen anzufügen und zu prüfen, ob dies funktioniert. Ihr SQL-Instanzname lautet beispielsweise MySQLDefaultinstance und wird auf Port 2000 ausgeführt. Geben Sie den Servernamen als MySQLServer, 2000 an, und überprüfen Sie, ob er funktioniert.

  • Wenn es nicht funktioniert, gibt es an, dass die Firewall den Port blockiert. Sie können die Anweisungen unter "Konfigurieren einer Windows-Firewall für Datenbankmodulzugriff " befolgen oder mit Ihrem Netzwerkadministrator zusammenarbeiten, um den Port zur Firewall-Ausschlussliste hinzuzufügen.

    • Wenn dies funktioniert, weist dies darauf hin, dass die Firewall die Kommunikation über diesen Port zulässt. Sie müssen die Verbindungszeichenfolge ändern, um die Portnummer und den Servernamen in der Verbindungszeichenfolge Ihrer Anwendung zu verwenden.

Benannte Instanz von SQL Server

Wenn ihre SQL-Instanz eine benannte Instanz ist, kann sie für die Verwendung dynamischer Ports oder eines statischen Ports konfiguriert werden. In beiden Fällen fragen die zugrunde liegenden Netzwerkbibliotheken den SQL Server Browserdienst, der auf Ihrem SQL Server Computer ausgeführt wird, über UDP-Port 1434 ab, um die Portnummer für die benannte Instanz aufzählen. Wenn eine Firewall zwischen dem Client und dem Server diesen UDP-Port blockiert, kann die Clientbibliothek den Port (eine Verbindungsanforderung) nicht ermitteln, und die Verbindung schlägt fehl. Zum Überprüfen der Verbindung können Sie eine der folgenden Methoden verwenden:

  • Methode 1: Überprüfen Sie die Verbindung, indem Sie die Portnummer in der Verbindungszeichenfolge angeben.

    1. Ermitteln Sie den Port, an dem Ihre SQL-Instanz ausgeführt wird. Weitere Informationen finden Sie unter Abrufen des TCP-Ports der Instanz.

    2. Versuchen Sie, eine Verbindung mit der benannten Instanz herzustellen, indem Sie die Portnummer verwenden, die dem Servernamen im Format <servername\instancename>,<portnumber> angefügt ist, und überprüfen Sie, ob dies funktioniert. Wenn Ihr SQL-Instanzname beispielsweise "MySQL\Namedinstance " lautet und auf Port 3000 ausgeführt wird, geben Sie den Servernamen als "MySQL\Namedinstance,3000" an.

      • Wenn es funktioniert, gibt es an, dass die Firewall den UDP-Port 1434 blockiert oder die Instanz vor SQL Server Browser ausgeblendet ist.

      • Wenn es nicht funktioniert, gibt es eine der folgenden Situationen an:

        • Entweder ist UDP-Port 1434 blockiert, oder der statische Port ist blockiert, oder beides. Verwenden Sie Portqry, um zu bestätigen, ob es sich um den UDP-Port oder den statischen Port handelt.

        • Die Instanz ist im SQL Server Browserdienst ausgeblendet.

  • Methode 2: Überprüfen Sie die Verbindung mithilfe des PortQryUI-Tools.

    Verwenden Sie das PortQryUI-Tool mit Ihrer benannten Instanz, und beobachten Sie die resultierende Ausgabe. Möglicherweise wird eine Meldung angezeigt, dass der UDP-Port 1434 gefiltert ist. Diese Meldung gibt an, dass der Port im Netzwerk blockiert ist. Anweisungen zur Verwendung des Tools finden Sie unter Verwenden des PortQryUI-Tools mit SQL Server.

    Ermitteln Sie, ob die SQL Server Instanz dynamische oder statische Ports lauscht. Verwenden Sie dann die folgende Methode, die für Ihr Szenario relevant ist. Wenn Sie nicht sicher sind, lesen Sie "Überprüfen", ob SQL Server einen dynamischen Oder statischen Port überwachen.

    • Szenario 1: Dynamische Ports. Stellen Sie in diesem Fall sicher, dass der SQL Server Browserdienst gestartet und UDP-Port 1434 nicht in der Firewall zwischen dem Client und dem Server blockiert wird. Wenn Sie eine dieser Aktionen nicht ausführen können, sollten Sie Ihre SQL Server Instanz auf einen statischen Port umstellen und das unter "Server für die Überwachung auf einem bestimmten TCP-Port" dokumentierte Verfahren verwenden.

    • Szenario 2: Konfiguration des statischen Ports. Entweder wird SQL Server Browser nicht ausgeführt, oder UDP 1434 kann nicht in der Firewall geöffnet werden. Stellen Sie in diesem Fall sicher, dass Sie den statischen Port in der Verbindungszeichenfolge angeben und dass die Firewall den Port nicht blockiert. Weitere Informationen erhalten Sie unter Konfigurieren einer Windows-Firewall für den Zugriff auf das Datenbankmodul.

Schritt 6: Überprüfen der aktivierten Protokolle auf SQL Server

In einigen Installationen von SQL Server werden Verbindungen mit dem Datenbankmodul von einem anderen Computer nicht aktiviert, es sei denn, ein Administrator aktiviert sie manuell. Sie können eine der folgenden Optionen verwenden, um die erforderlichen Protokolle zu überprüfen und zu aktivieren, um Remoteverbindungen mit SQL Server Database Engine zu ermöglichen.

Option 1: Verwenden der Ausgabedatei des SQLCheck-Tools

  1. Durchsuchen Sie die SQLCheck-Ausgabedatei nach dem Abschnitt "Details für SQL Server Instanz", und suchen Sie den Informationsabschnitt für Ihre SQL Server Instanz.

  2. Suchen Sie im Abschnitt die in der folgenden Tabelle aufgeführten Werte, um zu ermitteln, ob die SQL Server Protokolle aktiviert sind:

    Wertname Auswirkung Weitere Informationen
    Freigegebener Speicher aktiviert Kann entweder auf "false" angewendet werden – wirkt sich nur auf lokale Verbindungen aus. Erstellen einer gültigen Verbindungszeichenfolge mithilfe des Shared Memory Protocol
    Named Pipes aktiviert Bei "false" schlagen sowohl lokale als auch Remoteverbindungen mit named pipes fehl. Auswählen eines Netzwerkprotokolls
    TCP aktiviert Bei "false" schlagen sowohl lokale als auch Remoteverbindungen mit TCP/IP fehl.
    Anmerkung Die meisten SQL Server-Installationen verwenden TCP/IP als Kommunikationsprotokoll zwischen Server und Client.
    Auswählen eines Netzwerkprotokolls
  3. Aktivieren Sie erforderliche Protokolle mithilfe von SQL Server-Konfigurations-Manager oder SQL Server PowerShell. Weitere Informationen finden Sie unter Aktivieren oder Deaktivieren eines Servernetzwerkprotokolls.

    Hinweis

    Nach dem Aktivieren eines Protokolls muss das Datenbankmodul angehalten und neu gestartet werden, damit die Änderung wirksam wird.

Option 2: Verwenden von SQL Server-Konfigurations-Manager

Führen Sie die folgenden Schritte aus, um Verbindungen von einem anderen Computer mithilfe der SQL Server-Konfigurations-Manager zu aktivieren:

  1. Öffnen Sie die SQL Server-Konfigurations-Manager.

  2. Erweitern Sie im linken Bereich SQL Server Netzwerkkonfiguration, und wählen Sie dann die Instanz der SQL Server aus, mit der Sie eine Verbindung herstellen möchten. Im rechten Bereich sind die verfügbaren Verbindungsprotokolle aufgeführt. Freigegebener Speicher ist normalerweise aktiviert. Es kann nur von demselben Computer verwendet werden, sodass die meisten Installationen den freigegebenen Speicher aktiviert lassen. Verwenden Sie TCP/IP, um eine Verbindung mit SQL Server von einem anderen Computer herzustellen. Wenn TCP/IP nicht aktiviert ist, klicken Sie mit der rechten Maustaste auf TCP/IP, und wählen Sie " Aktivieren" aus.

  3. Wenn Sie die aktivierte Einstellung für ein beliebiges Protokoll ändern, starten Sie das Datenbankmodul neu. Wählen Sie im linken Bereich SQL Server Dienste aus. Klicken Sie im rechten Bereich mit der rechten Maustaste auf die Instanz des Datenbankmoduls, und wählen Sie dann "Neu starten" aus.

Schritt 7: Testen der TCP/IP-Konnektivität

Eine Verbindung mit SQL Server mithilfe von TCP/IP erfordert, dass Windows die Verbindung herstellt. Mit den folgenden Schritten können Sie die TCP-Konnektivität mithilfe des Pingtools testen.

  1. Wählen Sie im Startmenü die Option "Ausführen" aus. Geben Sie im Fenster "Ausführen " "cmd " ein, und wählen Sie "OK" aus.

  2. Geben Sie ping im Eingabeaufforderungsfenster die IP-Adresse des Computers ein, auf dem SQL Server ausgeführt wird. Zum Beispiel:

    • IPv4: ping 192.168.1.101
    • IPv6: ping fe80::d51d:5ab5:6f09:8f48%11
  3. Wenn Ihr Netzwerk ordnungsgemäß konfiguriert ist, ping Reply from <IP address> werden einige zusätzliche Informationen zurückgegeben. Wenn ping zurückgegeben Destination host unreachable oder Request timed out, ist TCP/IP nicht ordnungsgemäß konfiguriert. Fehler an diesem Punkt deuten auf ein Problem mit dem Clientcomputer, dem Servercomputer oder etwas mit dem Netzwerk hin, z. B. einem Router. Informationen zur Behandlung von Netzwerkproblemen finden Sie unter Erweiterte Problembehandlung für TCP/IP-Probleme.

  4. Wenn der ping Test mithilfe der IP-Adresse erfolgreich ist, testen Sie, ob der Computername in die TCP/IP-Adresse aufgelöst werden kann. Geben Sie auf dem Clientcomputer im Eingabeaufforderungsfenster ping und den Namen des Computers ein, auf dem SQL Server ausgeführt wird. Beispiel: ping newofficepc.

  5. Wenn ein Ping an die IP-Adresse erfolgreich ist, aber ein Ping an den Computernamen zurückgegeben wird Destination host unreachable oder Request timed outsie alte (veraltete) Namensauflösungsinformationen auf dem Clientcomputer zwischengespeichert haben. Geben Sie ipconfig /flushdns den Typ ein, um den DNS-Cache (Dynamic Name Resolution) zu löschen. Pingen Sie den Computer dann erneut anhand des Namens. Wenn der DNS-Cache leer ist, überprüft der Clientcomputer die neuesten Informationen über die IP-Adresse des Servercomputers.

  6. Wenn Ihr Netzwerk ordnungsgemäß konfiguriert ist, ping Reply from <IP address> werden einige zusätzliche Informationen zurückgegeben. Wenn Sie den Servercomputer erfolgreich per IP-Adresse pingen können, aber einen Fehler erhalten, z Destination host unreachable . B. oder Request timed out beim Pingen nach Computername, ist die Namensauflösung nicht ordnungsgemäß konfiguriert. Weitere Informationen finden Sie unter Beheben grundlegender TCP/IP-Probleme. Eine erfolgreiche Namensauflösung ist nicht erforderlich, um eine Verbindung mit SQL Server herzustellen. Wenn der Computername jedoch nicht in eine IP-Adresse aufgelöst werden kann, müssen Verbindungen hergestellt werden, um die IP-Adresse anzugeben. Die Namensauflösung kann später behoben werden.

Hinweis

Sie können auch das Cmdlet "Test-NetConnection " oder "Test-Connection" verwenden, um die TCP-Konnektivität entsprechend der auf dem Computer installierten PowerShell-Version zu testen. Weitere Informationen zum PowerShell-Cmdlet finden Sie unter Cmdlet Overview.

Schritt 8: Testen der lokalen Verbindung

Testen Sie vor der Behandlung eines Verbindungsproblems von einem anderen Computer aus, ob Sie eine Verbindung von einer Clientanwendung herstellen können, die lokal auf dem Computer installiert ist, auf dem SQL Server ausgeführt wird. Die lokale Verbindung vermeidet Probleme mit Netzwerken und Firewalls.

Für dieses Verfahren ist SQL Server Management Studio erforderlich. Wenn Sie Management Studio nicht installiert haben, lesen Sie "Download SQL Server Management Studio (SSMS)".

Wenn Sie Management Studio nicht installieren können, können Sie die Verbindung mithilfe des Dienstprogrammssqlcmd.exe testen. sqlcmd.exe wird mit dem Datenbankmodul installiert. Informationen zu sqlcmd.exe finden Sie unter sqlcmd Utility.

  1. Melden Sie sich bei dem Computer an, auf dem SQL Server installiert ist, indem Sie eine Anmeldung verwenden, die auf SQL Server zugreifen kann. Während der Installation muss SQL Server mindestens eine Anmeldung als SQL Server-Administrator angegeben werden. Wenn Sie keinen Administrator kennen, lesen Sie "Herstellen einer Verbindung mit SQL Server Wenn Systemadministratoren gesperrt sind".

  2. Geben Sie auf der Startseite SQL Server Management Studio ein, oder wählen Sie im Startmenü der älteren Versionen von Windows "Alle Programme", dann "Microsoft SQL Server" und dann "SQL Server Management Studio" aus.

  3. Wählen Sie im Dropdownmenü "Verbinden " die Option "Datenbankmodul" aus. Wählen Sie im Feld "Authentifizierung " die Option "Windows-Authentifizierung" aus. Geben Sie im Feld " Servername " einen der folgenden Verbindungstypen ein:

    Herstellen einer Verbindung mit Typ Beispiel
    Standardinstanz <computer name> ACCNT27
    Benannte Instanz <computer name\instance name> ACCNT27\PAYROLL

    Hinweis

    Beim Herstellen einer Verbindung mit SQL Server von einer Clientanwendung auf demselben Computer wird das Protokoll für den gemeinsam genutzten Speicher verwendet. Freigegebener Speicher ist eine Art von lokalem Named Pipe, daher treten manchmal Fehler im Zusammenhang mit Pipes auf.

  4. Wenn an diesem Punkt ein Fehler angezeigt wird, müssen Sie ihn beheben, bevor Sie fortfahren. Ihre Anmeldung ist möglicherweise nicht berechtigt, eine Verbindung herzustellen. Ihre Standarddatenbank fehlt möglicherweise.

    Hinweis

    Sie können das Problem nicht ohne genügend Informationen beheben, da einige Fehlermeldungen absichtlich an den Client übergeben werden. Dies ist ein Sicherheitsfeature, um zu vermeiden, dass ein Angreifer Informationen über SQL Server bereitstellt. Informationen zum Fehler finden Sie im SQL Server Fehlerprotokoll.

  5. Wenn fehler 18456 Login failed for user, Books Online article MSSQLSERVER_18456 contains additional information about error codes. Aaron Bertrand Blog hat auch eine umfangreiche Liste der Fehlercodes bei der Problembehandlung Fehler 18456 (externer Link). Sie können das Fehlerprotokoll mithilfe von SSMS (wenn Sie eine Verbindung herstellen können) im Abschnitt "Verwaltung" der Objekt-Explorer anzeigen. Andernfalls können Sie das Fehlerprotokoll mit dem Windows Editor-Programm anzeigen. Der Standardspeicherort variiert je nach Version und kann während des Setups geändert werden. Der Standardspeicherort für SQL Server 2019 (15.x) ist C:\Program Files\Microsoft SQL Server\MSSQL15. MSSQLSERVER\MSSQL\Log\ERRORLOG.

  6. Wenn Sie eine Verbindung über gemeinsam genutzten Speicher herstellen können, testen Sie die Verbindung mithilfe von TCP. Sie können eine TCP-Verbindung erzwingen, indem Sie vor dem Namen angeben tcp: . Hier sind die Beispiele:

    Herstellen einer Verbindung mit: Typ: Beispiel:
    Standardinstanz tcp:<computer name> tcp:ACCNT27
    Benannte Instanz tcp:<computer name/instance name> tcp:ACCNT27\PAYROLL
  7. Wenn Sie eine Verbindung mithilfe des freigegebenen Speichers, aber nicht mit TCP herstellen können, müssen Sie das TCP-Problem beheben. Das wahrscheinlichste Problem ist, dass TCP nicht aktiviert ist. Informationen zum Aktivieren von TCP finden Sie in Schritt 6: Überprüfen der aktivierten Protokolle auf SQL Server.

  8. Wenn Sie eine Verbindung mit einem anderen Konto als einem Administratorkonto herstellen möchten, können Sie zunächst eine Verbindung als Administrator herstellen. Versuchen Sie dann erneut, eine Verbindung mit der Windows-Authentifizierungsanmeldung oder der SQL Server-Authentifizierungsanmeldung herzustellen, die von der Clientanwendung verwendet wird.

Schritt 9: Testen der Remoteverbindung

Sobald Sie eine Verbindung über TCP auf demselben Computer herstellen können, ist es an der Zeit, die Verbindung vom Clientcomputer aus herzustellen. Sie können eine beliebige Clientanwendung verwenden, aber um Komplexität zu vermeiden, installieren Sie die SQL Server-Verwaltungstools auf dem Client. Versuchen Sie nach der Installation, SQL Server Management Studio zu verwenden.

  1. Verwenden Sie SQL Server Management Studio auf dem Clientcomputer, und versuchen Sie, eine Verbindung herzustellen, indem Sie die IP-Adresse und die TCP-Portnummer im Format IP-Adress-Kommaportnummer verwenden. Beispiel: 192.168.1.101,1433. Wenn diese Verbindung fehlschlägt, haben Sie wahrscheinlich eines der folgenden Probleme:

  2. Nachdem Sie die Verbindung über die IP-Adresse und Portnummer hergestellt haben, überprüfen Sie die folgenden Szenarien:

    • Wenn Sie eine Verbindung mit einer Standardinstanz herstellen, die auf einem anderen Port als 1433 lauscht, müssen Sie entweder die Portnummer in der Verbindungszeichenfolge verwenden oder einen Alias auf dem Clientcomputer erstellen, um eine Verbindung mit der Standardinstanz herzustellen. Der SQL Server Browserdienst kann keine Ports der Standardinstanz auflisten.

    • Wenn Sie eine Verbindung mit einer benannten Instanz herstellen, versuchen Sie, eine Verbindung mit der Instanz im Format des umgekehrten Instanznamens der IP-Adresse herzustellen. (Beispiel 192.168.1.101\<instance name>: .) Wenn diese Aktion nicht funktioniert, bedeutet dies, dass die Portnummer nicht an den Client zurückgegeben wird. Das Problem bezieht sich auf den SQL Server Browserdienst, der die Portnummer einer benannten Instanz für den Client bereitstellt. Hier sind die Lösungen:

      • Starten Sie den SQL Server Browserdienst. Lesen Sie die Anweisungen zum Starten des Browsers in SQL Server-Konfigurations-Manager.
      • Der SQL Server Browserdienst wird von der Firewall blockiert. Öffnen Sie den UDP-Port 1434 in der Firewall. Zurück zum Abschnitt Schritt 5: Überprüfen der Firewallkonfiguration. Stellen Sie sicher, dass Sie einen UDP-Port und keinen TCP-Port öffnen.
      • Die UDP-Port 1434-Informationen werden von einem Router blockiert. Die UDP-Kommunikation (Benutzerdatengrammprotokoll) ist nicht für die Weitergabe von Routern konzipiert und verhindert, dass das Netzwerk mit Datenverkehr mit niedriger Priorität gefüllt wird. Sie können Ihren Router so konfigurieren, dass UDP-Datenverkehr weitergeleitet wird, oder Sie können die Portnummer bei jeder Verbindung angeben.
      • Wenn der Clientcomputer Windows 7, Windows Server 2008 oder ein neueres Betriebssystem verwendet, kann das Clientbetriebssystem den UDP-Datenverkehr löschen, da die Antwort vom Server von einer anderen IP-Adresse zurückgegeben wird, die abgefragt wurde. Diese Aktion ist ein Sicherheitsfeature, das die "lose Quellzuordnung" blockiert. Weitere Informationen finden Sie im Abschnitt " Mehrere Server-IP-Adressen " im Artikel "Problembehandlung: Timeout abgelaufen". (Dieser Artikel stammt aus SQL Server 2008 R2, aber die Prinzipale gelten weiterhin. Sie können den Client so konfigurieren, dass er die richtige IP-Adresse verwendet, oder sie können die Portnummer bei jeder Verbindung angeben.)
  3. Sobald Sie eine Verbindung mithilfe der IP-Adresse (oder der IP-Adresse und des Instanznamens für eine benannte Instanz) herstellen können, versuchen Sie, die Verbindung mithilfe des Computernamens (oder des Computer- und Instanznamens für eine benannte Instanz) herzustellen. Stellen Sie tcp: sich vor den Computernamen, um eine TCP/IP-Verbindung zu erzwingen. Verwenden Sie tcp:ACCNT27beispielsweise für die Standardinstanz auf einem Computer mit dem Namen ACCNT27 . Verwenden Sie tcp:ACCNT27\PAYROLLfür eine benannte Instanz namens PAYROLL auf diesem Computer . Wenn Sie eine Verbindung über die IP-Adresse, aber nicht über den Computernamen herstellen können, liegt ein Namensauflösungsproblem vor. Zurück zum Abschnitt Schritt 7: Testen der TCP/IP-Konnektivität.

  4. Sobald Sie eine Verbindung mithilfe des Computernamens herstellen können, der TCP erzwingt, versuchen Sie, die Verbindung mithilfe des Computernamens herzustellen, ohne TCP zu erzwingen. Beispielsweise für eine Standardinstanz, und verwenden Sie einfach einen Computernamen wie CCNT27. Verwenden Sie für eine benannte Instanz den Computernamen und den Instanznamen wie ACCNT27\PAYROLL. Wenn Sie beim Erzwingen von TCP eine Verbindung herstellen können, aber nicht, ohne TCP zu erzwingen, verwendet der Client wahrscheinlich ein anderes Protokoll, z. B. Named Pipes. Führen Sie die folgenden Schritte aus, um dieses Problem zu beheben:

    1. Verwenden Sie auf dem Clientcomputer SQL Server-Konfigurations-Manager. Erweitern Sie im linken Bereich SQL Native Client <version> Konfiguration, und wählen Sie dann "Clientprotokolle" aus.
    2. Stellen Sie im rechten Bereich sicher, dass TCP/IP aktiviert ist. Wenn TCP/IP deaktiviert ist, klicken Sie mit der rechten Maustaste auf TCP/IP , und wählen Sie "Aktivieren" aus.
    3. Stellen Sie sicher, dass die Protokollreihenfolge für TCP/IP eine kleinere Zahl als die Named Pipes-Protokolle (oder VIA bei älteren Versionen) ist. Im Allgemeinen sollten Sie freigegebenen Speicher als Reihenfolge 1 und TCP/IP als Reihenfolge 2 belassen. Freigegebener Speicher wird nur verwendet, wenn der Client und SQL Server auf demselben Computer ausgeführt werden. Alle aktivierten Protokolle werden in der reihenfolge versucht, bis eines erfolgreich ist, aber freigegebener Speicher wird übersprungen, wenn sich die Verbindung nicht auf demselben Computer befindet.

Siehe auch