Ich kann anscheinend von einer Site aus keine Verbindung zu meiner Datenbank herstellen. Ich erhalte diesen Fehler:
Named Pipes Provider, Fehler: 40 - Verbindung zu SQL Server konnte nicht hergestellt werden
Ich habe versucht, sowohl eine lokale als auch eine öffentliche IP-Adresse für die Verbindung zu verwenden. Ich habe es versucht:
- Ja, die Site kann mit dem Server kommunizieren
- Named Pipes / TCP ist aktiviert.
- Fernverbindungen sind zulässig.
- Die Windows-Firewall ist ausgeschaltet
- Es wurde eine Ausnahme für Port 1433 in der Windows-Firewall erstellt.
- Alles in SQL Server Configuration Manager aktiviert.
Was kann ich hier noch tun?
Antworten:
Die Lösung dieses Problems ist sehr einfach:
Screenshot der Schritte:
quelle
Und die einfachste Lösung - prüfen Sie, ob Ihr Schrägstrich wieder da ist ...
Ich habe ungefähr eine Stunde damit verbracht herauszufinden, was mit SERVER / INSTANCENAME nicht stimmt, wenn alles richtig konfiguriert ist, benannte Pipes, Benutzerzugriffsrechte ... und plötzlich ist mir aufgefallen , es ist kein Schrägstrich, es ist ein Backslash (
\
).Das Grauen, die Schande ...
quelle
Server=MyServerName\DOLPHIN=Trusted_Connection=True;Database=DolphinPlatform
Während der Entwicklung (C #) stellte ich eine Verbindung zu einem lokal installierten MSSQL 2017-Server her, aber als ich ihn bereitstellte, wurde der vom Softwareanbieter installierte Remoteserver als ausgeführtInstance
. Ich dachte immer, es sei ein Authentifizierungsproblem, weil es als Dienst oder so etwas lief, bis ich dies fand.Nach der Installation von SQL Server ist dies ein dreistufiger Prozess:
Starten Sie den Server neu. SQL Config Manager -> SQL Server-Dienste -> SQL Server (SQLEXPRESS) -> Rechtsklick -> Neustart
Verwenden Sie die richtigen Server- und Instanznamen (beide werden benötigt!). In der Regel ist dies . \ SQLEXPRESS , siehe beispielsweise den Screenshot im QueryExpress-Verbindungsdialog.
Hier hast du es.
quelle
Ich hatte gerade den SQL Server 2012-Entwickler installiert. Beim Erstellen meines ersten SSIS-Pakets wurde dieser Pipes-Fehler angezeigt, als ich versuchte, eine Datenverbindungsaufgabe in SQL Server 2012 Data Tools im Feld Verbindungsmanager zu erstellen. Ich habe mit Hilfe des obigen Beitrags gelöst.
Wenn Sie eine benannte Instanz auswählen und Ihre benannte Instanz SSQDatabase1 aufrufen und der Name Ihres PCs PCX1 lautet. Sie müssen PCX1 \ SSQDatabase1 eingeben, nicht nur SSQDatabase1. Andernfalls wird der Fehler "Named Pipes" angezeigt.
quelle
Ein Thread zu MSDN Social, Re: Named Pipes Provider, Fehler: 40 - Verbindung zu SQL Server konnte nicht hergestellt werden , enthält eine recht anständige Liste möglicher Probleme, die mit Ihrem Fehler zusammenhängen. Vielleicht möchten Sie sehen, ob einer von ihnen das ist, was Sie erleben.
quelle
ip.ip.ip.ip/NamedInstance
?i Gerade TCP / IP, VIA, Named Pipes im SQL Server Configuration Manager aktiviert. Mein Problem wurde behoben. Weitere Informationen finden Sie hier. Beheben des Named Pipes-Fehlers 40
quelle
Verwenden Sie SERVER \\ INSTANCE NAME. Die Verwendung von doppeltem Backslash in meinem Projekt hat mein Problem gelöst.
quelle
@"server\instance"
oder"server\\instance"
funktionieren sollte. Wenn es sich in einer Konfigurationsdatei befindet, möchten Sie nur den Nur-Text-Server \ Instanz.Danke an Damian ...
TCP / IP Named Pipes ... beide aktiviert
Webkonfiguration .... (für localhost)
quelle
Hatte das gleiche Problem. Verbrachte ungefähr 6 Stunden, als einige Server migriert werden mussten. Versuchte alle Vorschläge zu diesem Thema und anderen.
Die Lösung war so einfach wie ein Neustart des Servers!
quelle
In meinem Fall hatte ich einen eigenständigen Server, ich habe den Standardport 1433 des SQL-Server-Ports im Konfigurationsmanager auf eine bestimmte Nummer geändert und den SQL-Serve-Dienst neu gestartet, damit er wirksam wird. Wenn ich mich anmelde, konnte ich über Management Studio eine Verbindung zum SQL-Server herstellen zum Server. Aber ich konnte keine Verbindung von meinem lokalen Computer über den SQL Server herstellen. Es wurde folgende Fehlermeldung angezeigt:
Beim Herstellen einer Verbindung zu 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
Dieser SQL Server ist so konfiguriert, dass Remoteverbindungen zugelassen werden. (Anbieter: Named Pipes Provider, Fehler: 40 - Verbindung zu SQL Server konnte nicht hergestellt werden) (Microsoft SQL Server, Fehler: 5)
Ich habe alle folgenden Punkte überprüft und verifiziert
-Named Pipes / TCP ist aktiviert. -Remote-Verbindungen sind erlaubt. - Windows-Firewall ist deaktiviert - Es wurde eine Ausnahme für die Portierung der Windows-Firewall erstellt (dies war in meinem Fall nicht erforderlich, da sich der Server im selben Subnetz befindet). - Alles in SQL Server Configuration Manager aktiviert.
Dann habe ich die Portnummer auf Standard 1433 zurückgesetzt und den SQL Server-Dienst neu gestartet. Das Problem wurde behoben und ich kann den SQL Server von meinem lokalen Verwaltungsstudio aus verbinden.
quelle
Ich hatte das gleiche Problem. Ich verwende MSSQL Server Management Studio 2017 und habe dieses Problem mithilfe der folgenden Schritte gelöst:
und behoben.
quelle
Versuchen Sie die folgenden Schritte:
Öffnen Sie das Fenster "Dienste" (öffnen Sie "run box" und geben Sie services.msc ein).
Suche nach SQL-Diensten (mit SQL-Präfix).
Starten Sie sie (falls nicht gestartet. Fahren Sie mit Schritt 4 fort).
Klicken Sie mit der rechten Maustaste auf jeden Dienst -> Eigenschaften -> Wechseln Sie zur Registerkarte "Anmelden" -> Wählen Sie Anmelden als "Lokal ..." -> 0 KB. Starten Sie dann die SQL-Dienste erneut.
Versuchen Sie Open SQL und verbinden Sie die Datenbank.
quelle
Sie werden höchstwahrscheinlich feststellen, dass Ihr DB-Name nicht korrekt ist. Sie sehen den Servernamen in VS wie "DESKTOP-0I14BKI". Wenn Sie jedoch SSMS öffnen, wird DESKTOP-0I14BKI \ SQLBLAHBLAH angezeigt. Fügen Sie einfach " \ SQLBLAHBLAH " ( Instanzname ) hinzu ) zu Ihrem "Servernamen" in den VS-Verbindungseigenschaften.
Sie werden sehen :
Reparieren:
quelle
TL; DR; Ihre SQL Server-Instanz verwendet dynamische Ports, die nicht funktionieren. Erzwingen Sie, dass SQL Server den statischen Port Nr. 1433 verwendet.
Vollständige Details : Erstens ist dieses Problem wahrscheinlicher, wenn Sie eine Mischung aus Standard- und benannten Instanzen oder nur benannten Instanzen haben (was mein Fall war).
Schlüsselkonzept : Jede auf einem Computer installierte Instanz von Microsoft SQL Server verwendet einen anderen Port, um auf eingehende Verbindungsanforderungen zu warten. Die Standardinstanz von SQL Server verwendet Port Nr. 1433. Wenn Sie benannte Instanzen installieren, werden dynamische Ports verwendet, die zum Zeitpunkt des Starts des Windows-Dienstes festgelegt werden, der der benannten SQL Server-Instanz entspricht.
Mein Code konnte (mit Fehlercode 40) keine Verbindung zu der einzigen benannten SQL Server-Instanz herstellen, die ich auf meiner VM hatte. Sie können unten mögliche Lösungen ausprobieren:
Lösung 1 : Der Clientcode, der versucht, eine Verbindung zur SQL Server-Instanz herzustellen, verwendet die Hilfe des SQL Server-Browserdienstes, um die Portnummer zu ermitteln, unter der Ihre benannte Instanz auf eingehende Verbindungen wartet. Stellen Sie sicher, dass der SQL-Browserdienst auf Ihrem Computer ausgeführt wird.
Lösung 2 : Überprüfen Sie die Portnummer (in gelber Farbe), die Ihre benannte SQL Server-Instanz verwendet, im SQL Server-Konfigurationsmanager, wie im folgenden Snapshot gezeigt:
Verwenden Sie diese Portnummer explizit in Ihrer Verbindungszeichenfolge oder mit
sqlcmd
der folgenden Abbildung:Lösung 3 : Erzwingen Sie, dass Ihre benannte Instanz den Port 1433 verwendet, der von der Standardinstanz verwendet wird. Denken Sie daran, dass dies nur funktioniert, wenn Sie keine Standard-SQL Server-Instanz auf Ihrem Computer haben, da die Standard-SQL Server-Instanz bereits Port 1433 verwenden würde. Dieselbe Portnummer kann nicht von zwei verschiedenen Windows-Diensten verwendet werden.
Markieren Sie das
TCP Dynamic ports
Feld als leer und dasTCP Port
Feld als 1433.Ändern Sie die Portnummer in Ihrer Verbindungszeichenfolge wie folgt:
ODER
Hinweis : Jede Änderung der TCP / IP-Einstellungen erfordert einen entsprechenden Neustart des Windows-Dienstes.
Interessanterweise ist es nach der Behebung des Fehlers, als ich zur dynamischen Porteinstellung zurückkehrte, um denselben Fehler zu reproduzieren, nicht aufgetreten. Nicht sicher warum.
Bitte lesen Sie unten interessante Threads, um mehr über dynamische Ports von SQL Server zu erfahren:
Wie konfiguriere ich den SQL Server-Port auf mehreren Instanzen?
Wann ist ein dynamischer Port „dynamisch“?
Wann wird ein dynamischer TCP-Port verwendet und wann ein TCP-Port?
Ich habe Hinweise zur Lösung meines Problems von diesem Blog erhalten.
quelle
In meinem Fall habe ich SQL Server Management Studio geöffnet und in meinem Datenbankmodul nach SQLEXPRESS gesucht. Es gab zwei Instanzen und ich habe die richtige ausgewählt.
quelle
Wenn Sie mit Asp.net Core arbeiten und appsettings.json verwenden, schreiben Sie den Server als localhost und schreiben Sie nach dem Schreiben den SQL-Instanznamen für die aktivierte Named Pipe wie folgt
quelle
Sehr einfache Lösung
benutze
(local)\InstanceName
das ist es. es hat bei mir funktioniert.quelle
Wenn Sie versucht haben, den MSSQLSERVER-Dienst neu zu starten, und dies nicht funktioniert hat, ist dies möglicherweise eine Lösung:
Wenn Sie SQLExpress verwenden, sollte Ihr Servername wie folgt lauten: Computername \ SQLExpress. Für SQLDeveloper müssen Sie SQLDeveloper jedoch nicht nach Ihrem Computernamen korrigieren.
quelle
Nachdem Sie alle hier genannten Schritte ausgeführt haben , versuchen Sie, das DNS mit der IP-Adresse in der Hosts-Datei im Ordner etc hinzuzufügen, wenn immer noch keine Verbindung hergestellt wird. Das Hinzufügen einer IP-Adresse anstelle eines DNS-Namens in der Verbindungszeichenfolge sollte eine vorübergehende Lösung sein, um zu überprüfen, ob die Verbindung tatsächlich funktioniert.
quelle
Ich habe dafür gesorgt und auch das oben Genannte getan und ich möchte nur den DOUBLE BACKSLASH teilen
oBuilder.DataSource = "SPECIFICPCNAME \ SQLEXPRESS";
Die Verwendung eines SINGLE BACKSLASH führte zu einem Erstellungsfehler, dh: Fehler 1 Nicht erkannte Escape-Sequenz
Ich hoffe, das hilft dem nächsten Mann - ich habe Abendessen, Mitternachtssnack und NBA-Highlights geopfert, um dieses Problem zu lösen (schade)
Danke an [Tamizh venthan] ^ _ ^
quelle
Aktivieren Sie TCP / Ip, Piped Protocol, indem Sie zu Computerverwaltung -> SQL und Dienste gehen und sicherstellen, dass der Dienst aktiviert ist. Aktivieren Sie den Port in der Firewall. Versuchen Sie, sich über die Eingabeaufforderung -> als Administrator anzumelden. Zuletzt sollte der Benutzername (lokal) \ SQLEXPRESS sein. Hoffe das hilft.
quelle
Öffnen Sie SQL Server Configuration Manager
quelle
Ich hatte das gleiche Problem und löste das Problem durch Deaktivieren meiner Firewall (ESET).
Der erste Schritt zur Lösung dieses Problems sollte darin bestehen, Ihren eigenen Computer von einem anderen Computer aus zu pingen. Wenn Sie eine Firewall aktiviert haben, können Sie sich möglicherweise nicht selbst anpingen. Ich habe versucht, meinen eigenen PC zu pingen, dann ist der Ping fehlgeschlagen (ich habe keine Antwort vom Server erhalten).
quelle
Ich habe die folgenden Schritte vorgeschlagen, um Ihr Problem zu beheben. Wie behebe ich den Fehler 'Named Pipes Provider, Fehler 40 - Verbindung zu' SQL Server konnte nicht hergestellt werden '
quelle
Ich habe versucht, eine neue Verbindung in VS2015 hinzuzufügen. Keiner der Vorschläge hier hat funktioniert. Ich vermutete einen Fehler im Assistenten, insbesondere da SSMS eine gute Verbindung herstellen konnte, und beschloss, es zu versuchen. Es funktionierte!
Verwenden Sie "Neue SQL Server-Datenbank erstellen", anstatt die Verbindung hinzuzufügen. Geben Sie Ihren Servernamen und einen zufälligen Namen für die neue Datenbank ein, z. B. "Test".
Wenn dies erfolgreich ist, öffnen Sie den Server-Explorer in VS, suchen Sie die Verbindung in Datenverbindungen, klicken Sie mit der rechten Maustaste darauf und wählen Sie Verbindung ändern.
Ändern Sie "Test" (ab Schritt 1) in den Namen der vorhandenen Datenbank, zu der Sie eine Verbindung herstellen möchten. Klicken Sie auf "Verbindung testen". Diesmal sollte es funktionieren!
Löschen Sie die temporäre Datenbank, die Sie in Schritt 1 erstellt haben.
quelle
Ich habe noch eine Lösung, denke ich. Ich hatte kürzlich meinen Computernamen geändert, nachdem ich nach dem Ausprobieren aller oben genannten Methoden keine Verbindung mehr herstellen konnte. Ich habe den Servernamen geändert. Servername => (nach mehr suchen) => Unter Datenbankmodul wurde ein neuer Server gefunden, der dem neuen Computernamen entspricht. Das hat funktioniert und das Leben ist wieder gut.
quelle
Ich hatte lange Probleme damit, bevor ich meinen Fehler bemerkte - ich hatte Kommas anstelle von Semikolons in der Verbindungszeichenfolge verwendet
quelle
Ich hatte dieses Problem, aber keiner der obigen Vorschläge hat es behoben.
Dieses Problem trat auf, als ich meine Website für IIS bereitstellte. Das Update bestand darin, erweiterte Einstellungen für den Standard-App-Pool vorzunehmen und die Identitätseigenschaft von der Standardeinstellung in Administrator zu ändern.
quelle
Für mich war es ein Firewall-Problem.
Zuerst müssen Sie den Port hinzufügen (wie 1444 und vielleicht 1434), aber auch
und
Das zweite Mal, als ich dieses Problem bekam, war, als ich zur Firewall zurückkehrte, die Pfade nicht korrekt und ich musste Formular 12 auf 13 aktualisieren! Durch einfaches Klicken auf Durchsuchen auf der Registerkarte Programme und Dienste wurde dies erkannt.
Versuchen Sie abschließend, den Befehl auszuführen
Für mich gab es den Fehlergrund zurück
quelle
Ich habe so ziemlich alles auf dieser Seite ausprobiert, aber ich hatte einige zugrunde liegende Probleme, die tatsächlich gelöst werden mussten. Ich konnte bestimmte Dinge wie Open SQL Server Configuration Manager nicht ausführen, was zu beschädigten / fehlenden WMI-Provider-Dateien führte.
Es gibt viele mühsame Möglichkeiten, dieses Problem gemäß dem, was ich gelesen habe, zu beheben, aber das Tool von tweaking.com konnte meine WMI-Provider-Dateien (Windows Management Instrumentation) entfernen und ersetzen / reparieren.
Früher habe ich Computerreparaturen durchgeführt, und insgesamt hat mich das Tool tweaking.com wirklich beeindruckt, und es wurde von einer der Seiten des WMI-Fehlerforums vorgeschlagen, auf die ich gegangen bin.
Nachdem ich dieses Problem behoben hatte, konnte ich sowohl lokal als auch remote eine Verbindung zu meiner SQL-Datenbank herstellen.
Hoffe das hilft jemandem.
quelle