1047: Es konnte keine Verbindung zur SQL Server-Instanz [Servername\Instance] hergestellt werden
Symptom
Beim Versuch, eine Verbindung zu einer entfernten BarTender Systemdatenbank herzustellen, kann folgende Fehlermeldung erscheinen:
#1047: Es konnte keine Verbindung zur SQL-Server-Instanz [Servername\Instance] hergestellt werden.
Gilt für
BarTender 2019 und neuer
Diagnose
- Installieren Sie das SQL Server Management Studio auch auf dem Client-Rechner.
- Stellen Sie mit dem SQL Management Studio eine Verbindung zur zentralen SQL Server-Instanz her, und zwar mit denselben Benutzeranmeldedaten, die auch im Systemdatenbank-Assistenten verwendet werden.
Falls dies fehlschlägt, könnte dies darauf hindeuten, dass der SQL Server nicht richtig konfiguriert ist.
Lösung
Notwendige Berechtigungen konfigurieren
- Aktivieren Sie den Authentifizierungsmodus „Gemischt“ auf dem Server, wenn Sie SQL Server-Anmeldedaten verwenden möchten:
- In SQL Server Management Studio > Objekt-Explorer mit der rechten Maustaste auf den Server klicken und Eigenschaften auswählen.
- Auf der Seite „Sicherheit“ unter Serverauthentifizierung den gewünschten Authentifizierungsmodus auswählen und anschließend auf OK klicken.
- Weisen Sie dem Konto, das für die Verbindung zur BarTender Systemdatenbank verwendet wird, die erforderlichen Berechtigungen zu. Weitere Informationen zur Vergabe von Kontoberechtigungen finden Sie im verlinkten Artikel: Berechtigungen für eine Systemdatenbank konfigurieren (Video – 5:45)
- Entscheiden Sie, ob die Verbindung mit Windows- oder SQL Server-Anmeldedaten hergestellt werden soll (SQL Server-Anmeldedaten werden empfohlen).
- Falls weiterhin Probleme auftreten, versuchen Sie die folgenden Konfigurationsempfehlungen:
Wenn die Systemdatenbank auf Computer A eingerichtet wurde und es Probleme gibt, von Computer B (in der EA Edition mit SQL Express) eine Verbindung zur entfernten Systemdatenbank herzustellen, können die folgenden Tipps helfen, das Problem zu beheben.
- Versuchen Sie, anstelle des Instanznamens die IP-Adresse und den Port (in der Regel 1433) für die Verbindung zur entfernten SQL Server-Instanz zu verwenden.
- Wenn Sie stattdessen den Instanznamen verwenden möchten, ist eine vorherige Konfiguration von SQL Server erforderlich (siehe unten).
Remoteverbindungen auf der SQL Server-Instanz aktivieren
- Öffnen Sie das SQL Management Studio.
- Klicken Sie im linken Bereich mit der rechten Maustaste auf den Servernamen und wählen Sie Eigenschaften, dann Verbindungen und stellen Sie sicher, dass das Kontrollkästchen Remoteverbindungen mit diesem Server zulassen aktiviert ist, wie unten gezeigt.
SQL Express Server für statischen Port konfigurieren
- Öffnen Sie den SQL Server-Konfigurations-Manager und klicken Sie im linken Bereich auf SQL Server-Dienste.
- Nutzen Sie die Spalte „Prozess-ID“ (Mitte), um die Liste der Prozess-IDs für jeden laufenden Dienst zu sehen. Ermitteln Sie die PID in der Zeile für den SQL Server und den Port, auf dem diese PID lauscht, indem Sie folgenden Befehl in der Eingabeaufforderung eingeben:
netstat -ano | find /i “[PID-Nummer-des-SQL-Servers]"
Basierend auf den Details im obigen Bild lautet die Syntax wie folgt:netstat -ano | find /i “668”
- Die Ergebnisse werden unten angezeigt:
- Es werden keine Ergebnisse für den in Schritt 3 ausgeführten Befehl angezeigt, da das TCP/IP-Protokoll deaktiviert ist und aktiviert werden muss. Klicken Sie im SQL Server-Konfigurations-Manager im linken Bereich auf SQL Server-Netzwerkkonfiguration und klicken Sie mit der rechten Maustaste auf das Protokoll TCP/IP. Wählen Sie Aktivieren.
- Starten Sie den SQL Server-Dienst neu und ermitteln Sie die Prozess-ID, die dem SQL-Dienst zugewiesen wurde.
- Führen Sie in der Eingabeaufforderung folgenden Befehl aus:
netstat -ano | find /i “23444”
- Die Ergebnisse werden unten angezeigt:
- Klicken Sie im SQL Server-Konfigurations-Manager im linken Bereich auf SQL Server-Netzwerkkonfiguration und klicken Sie mit der rechten Maustaste auf das Protokoll TCP/IP.
- Gehen Sie zu Eigenschaften > IP-Adressen und scrollen Sie nach unten zum Abschnitt IPAll. Entfernen Sie den Wert für TCP Dynamic Ports (tragen Sie keine Null 0 ein).
- Tragen Sie für TCP-Port den Wert 1433 ein. Klicken Sie auf Übernehmen und dann auf OK.
- Starten Sie den SQL Server-Dienst neu, ermitteln Sie die neue Prozess-ID des SQL-Dienstes und führen Sie in der Eingabeaufforderung folgenden Befehl aus:
netstat -ano | find /i “5088”
- Die Ergebnisse werden unten angezeigt:
An diesem Punkt ist SQL Express so konfiguriert, dass er auf dem Standardport 1433 lauscht.
SQL Server Browser-Dienst aktivieren
- Öffnen Sie den SQL Server-Konfigurations-Manager und klicken Sie im linken Bereich auf SQL Server-Dienste. Klicken Sie mit der rechten Maustaste auf den SQL Server Browser-Dienst und wählen Sie Eigenschaften.
- Wechseln Sie zum Tab „Dienst“ und stellen Sie beim Startmodus die Option auf Automatisch. Klicken Sie auf Übernehmen und OK.
- Klicken Sie auf die Schaltfläche Starten, um den SQL Browser-Dienst zu starten.
- Stellen Sie sicher, dass der SQL Server Browser-Dienst wie unten angezeigt läuft.
Firewall für SQL Server-Netzwerkverkehr konfigurieren
In der Windows-Firewall müssen vier Ausnahmen konfiguriert werden, um den Zugriff auf den SQL Server zu ermöglichen:
- Eine Portausschlussregel für TCP-Port 1433. Im Dialogfeld Assistent für neue eingehende Regel verwenden Sie folgende Angaben, um eine Portausschlussregel zu erstellen:
- Wählen Sie Port.
- Wählen Sie TCP und geben Sie Port 1433 an.
- Verbindung zulassen.
- Alle drei Profile auswählen (Domäne, Privat & Öffentlich).
- Regel benennen: SQL – TCP 1433.
- Eine Portausschlussregel für UDP-Port 1434. Klicken Sie erneut auf Neue Regel und verwenden Sie folgende Angaben:
- Wählen Sie Port.
- Wählen Sie UDP und geben Sie Port 1434 an.
- Verbindung zulassen.
- Alle drei Profile auswählen (Domäne, Privat & Öffentlich).
- Regel benennen: SQL – UDP 1434.
- Eine Programmausnahme für sqlservr.exe. Klicken Sie erneut auf Neue Regel und verwenden Sie folgende Angaben:
- Wählen Sie Programm.
- Klicken Sie auf Durchsuchen und wählen Sie sqlservr.exe an folgendem Speicherort aus: C:\Program Files\Microsoft SQL Server\MSSQL11.[INSTANCE_NAME]\MSSQL\Binn\sqlservr.exe, wobei [INSTANCE_NAME] der Name Ihrer SQL-Instanz ist.
- Verbindung zulassen.
- Alle drei Profile auswählen (Domäne, Privat & Öffentlich).
- Regel benennen: SQL – sqlservr.exe.
- Eine Programmausnahme für sqlbrowser.exe. Klicken Sie erneut auf Neue Regel und verwenden Sie folgende Angaben:
- Wählen Sie Programm.
- Klicken Sie auf Durchsuchen und wählen Sie sqlbrowser.exe an folgendem Speicherort aus: C:\Program Files (x86)\Microsoft SQL Server\90\Shared\sqlbrowser.exe.
- Verbindung zulassen.
- Alle drei Profile auswählen (Domäne, Privat & Öffentlich).
- Regel benennen: SQL – sqlbrowser.exe.
Wie Sie sehen, kann es einige Konfigurationsschritte erfordern, damit Remoteverbindungen über den Instanznamen des SQL Servers funktionieren (abgesehen davon, dass dies ein Sicherheitsrisiko darstellt). Daher wird empfohlen, IP-Adresse und Port zu verwenden.