409 Stimmen

Aktivieren Sie Remoteverbindungen für SQL Server Express 2012

Ich habe gerade SQL Server Express 2012 auf meinem Heimserver installiert. Ich versuche, von Visual Studio 2012 von meinem Desktop-PC darauf zuzugreifen, und erhalte wiederholt den bekannten Fehler:

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 zulässig sind. (Anbieter: Named Pipes Provider, Fehler: 40 - Die Verbindung mit SQL Server konnte nicht geöffnet werden)

Was ich versucht habe, um das zu beheben:

  • Führen Sie den SQL Server-Konfigurations-Manager auf dem Server aus und aktivieren Sie den SQL Server-Browser
  • Fügen Sie eine Windows-Firewall-Ausnahme auf dem Server für TCP, Ports 1433 und 1434 im lokalen Subnetz hinzu.
  • Überprüfen Sie, ob ich auf der SQL Server-Instanz ein Login für den Benutzer habe, mit dem ich mich auf dem Desktop angemeldet habe.
  • Überprüfen Sie, ob ich Windows-Authentifizierung auf der SQL Server-Instanz verwende.
  • Starten Sie SQL Server und den gesamten verdammten Server wiederholt neu.
  • Ziehen Sie mir all meine Haare aus.

Wie kann ich SQL Server 2012 Express dazu bringen, Remoteverbindungen zuzulassen!?

7 Stimmen

Ich löste das Problem, indem ich den SQL Server Browser-Dienst aktiviert habe :D. Danke fürs Posten.

1 Stimmen

Das Entsperren des 1433 UDP-Ports hat mir geholfen!

1 Stimmen

Und wenn Sie eine Azure-VM verwenden, vergessen Sie nicht, den Port auch über das Azure-Verwaltungsportal zu öffnen (das als äußere Firewall für die eigene Firewall der VM dient...). Wie folgt: stackoverflow.com/questions/34251382/…

741voto

Ryan Lundy Punkte 195074

Na also, gut dass ich gefragt habe. Die Lösung, die ich schließlich gefunden habe, war hier:

Wie konfiguriere ich SQL Server Express, um Remote-TCP/IP-Verbindungen auf Port 1433 zuzulassen?

  1. SQL Server Configuration Manager öffnen.
  2. Zu SQL Server Network Configuration > Protocols für SQLEXPRESS gehen.
  3. Vergewissern, dass TCP/IP aktiviert ist.

Bisher läuft alles gut und ist vollkommen erwartet. Doch dann:

  1. Auf TCP/IP mit der rechten Maustaste klicken und Eigenschaften auswählen.
  2. Überprüfen, ob unter IP2 die IP-Adresse auf dem lokalen Subnetz des Computers eingestellt ist.
  3. Zu IPAll scrollen.
  4. Sicherstellen, dass TCP Dynamic Ports leer ist. (Bei mir war es auf eine 5-stellige Portnummer eingestellt.)
  5. Sicherstellen, dass TCP Port auf 1433 eingestellt ist. (Bei mir war es leer.)

(Außerdem ist es, wenn Sie diesen Schritten folgen, nicht notwendig, SQL Server Browser zu aktivieren, und Sie müssen nur Port 1433 zulassen, nicht 1434.)

Diese fünf zusätzlichen Schritte sind etwas, an das ich mich nicht erinnern kann, je in einer früheren Version von SQL Server, Express oder sonstwie, gemacht zu haben. Sie scheinen notwendig gewesen zu sein, weil ich eine benannte Instanz (meinservername\SQLEXPRESS) anstatt einer Standardinstanz auf dem Server benutze. Siehe hier:

Konfigurieren eines Servers zum Hören auf einem bestimmten TCP-Port (SQL Server Configuration Manager)

7 Stimmen

Wenn SQL Server Express nicht die einzige Instanz ist, kann es erforderlich sein, den Port 1433 auf anderen Instanzen ZUWEISEN. Ich hatte eine 2008 R2 Standardinstanz (MSSQLSERVER), und der einzige Weg, um von außen eine Verbindung zu beiden herzustellen, besteht darin, den Port 1433 der 2012-Instanz zuzuweisen (s.o.) und die Portzuweisungen für die ältere Standardinstanz auf TCP-Dynamische Ports = "0" und TCP-Port = "" (leer) zu ändern. Wenn ich es umgekehrt gemacht habe, hatte ich nur Zugriff auf die Standardinstanz.

18 Stimmen

Diese IPAll-Einstellung war der RETTER-Tipp! Meiner war wie deiner... :D

20 Stimmen

Für den Fall, dass es anderen hilft ... das hat geholfen, aber ich konnte keine Verbindung herstellen, bis ich den SQL Server Browser-Dienst gestartet habe. (Hinweis: Ich musste die Windows "Dienste"-Anwendung aufrufen, um dies zu tun, weil der Starttyp des SQL Server Browser-Dienstes aus irgendeinem Grund auf "Deaktiviert" war. Habe den Starttyp auf "Automatisch" geändert, den Dienst gestartet und konnte dann eine Verbindung herstellen.)

109voto

Rosdi Kasim Punkte 22151

Der richtige Weg, um eine Verbindung zu einem entfernten SQL Server herzustellen (ohne UDP-Port 1434 zu öffnen und den SQL Server Browser zu aktivieren), besteht darin, IP und Port anstelle von benannter Instanz zu verwenden.

Die Verwendung von IP und Port anstelle einer benannten Instanz ist auch sicherer, da der Angriffsbereich reduziert wird.

Vielleicht sagen 2 Bilder mehr als 2000 Worte...

Diese Methode verwendet den angegebenen Port (das ist wahrscheinlich das, was die meisten wollen)..

Bildbeschreibung eingeben

Diese Methode erfordert das Öffnen von UDP-Port 1434 und das Ausführen des SQL Server Browser..

Bildbeschreibung eingeben

0 Stimmen

Können Sie genauer erläutern, was Sie mit der Aussage meinen, dass dies die "richtige" Art und Weise ist, es zu tun?

3 Stimmen

@Kyralessa Ha! ... jetzt, da ich nach 4-5 Stunden Haare raufen wieder nüchtern bin und versuche, eine Verbindung zu meiner Remote-Instanz herzustellen, sollte ich wahrscheinlich erklären, dass 'korrekt' hier aus meinem Zusammenhang gelesen werden sollte. Es ist 'inkorrekt', sich mit dem Instanznamen zu verbinden, da ich den SQL Server Browser nicht aktiviert habe.

0 Stimmen

Ich habe meiner Antwort einige Erläuterungen hinzugefügt, um Missverständnisse zu vermeiden.

35voto

Pete Punkte 2273

Noch etwas...

Kyralessa bietet großartige Informationen, aber ich habe noch eine Sache hinzuzufügen, bei der ich selbst nach diesem Artikel hängengeblieben bin.

Unter SQL Server-Netzwerkkonfiguration > Protokolle für Server > TCP/IP aktiviert. Klicken Sie mit der rechten Maustaste auf TCP/IP und wählen Sie Eigenschaften aus. Unter den IP-Adressen müssen Sie Enabled für jeden Verbindungstyp, den Sie verwenden, auf Ja setzen.

Bildbeschreibung hier eingeben

18voto

Jayron Soares Punkte 461

Sie können dies verwenden, um das Problem zu lösen:

Gehen Sie zu START > AUSFÜHREN und starten Sie CLICONFG.EXE.

Das Named Pipes-Protokoll wird zuerst in der Liste sein. Stufen Sie es ab und befördern Sie TCP/IP.

Testen Sie die Anwendung gründlich.

Ich hoffe, das hilft.

0 Stimmen

Wow, was für ein Juwel... danke. Wusste nicht einmal, dass das existiert hat.

1 Stimmen

Dies konfiguriert den CLIENT, um TCP/IP zu verwenden, nicht den Server.

0 Stimmen

OMG, Es funktioniert!! Gerade angemeldet, um für diese Antwort zu stimmen. Danke

15voto

johnroster Punkte 151

Sie können auch einstellen

Hören Sie alle zu NEIN

im Protokolldialog dann in der IP-Adresse IP1 (sagen)

aktiviert auf Ja setzen,

Ihre IP-Adresse definieren,

TCP-Dynamik auf Leer setzen und

TCP-Port auf 1433 (oder was auch immer)

0 Stimmen

Beim Ausführen dieses Vorgangs unter Windows 8.1 mit installiertem SQL 2012 Express SP1 hängte sich SQL beim Start auf :(

0 Stimmen

Ich habe alle IP-Einträge 1, 2, ..., auf aktiviert + aktiv gesetzt, dynamisch gelöscht, Port gelöscht und den IPAll-Port auf 1433 gesetzt, dann musste ich Regeln hinzufügen, um TCP 1433 und UPD 1434 in der Firewall zu öffnen (1434 ist nicht erforderlich, wenn kein Name verwendet wird, sondern nur die Portnummer).

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X