Warum wird die Meldung "Verbindung zum Server kann nicht hergestellt werden - Ein netzwerkbezogener oder instanzspezifischer Fehler" angezeigt.

378

Beim Versuch, eine Verbindung zu SQL Server herzustellen, wird folgende Fehlermeldung angezeigt:

Es kann keine Verbindung zu 108.163.224.173 hergestellt werden.

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 dass SQL Server so konfiguriert ist, dass Remoteverbindungen zugelassen werden.

(Anbieter: Named Pipes Provider, Fehler: 40 - Verbindung zu SQL Server konnte nicht hergestellt werden) (Microsoft SQL Server, Fehler: 1326)

Dieser Fehler wird ausgelöst, wenn ich versuche, meine Datenbank in Visual Studio 2010 für Gridview zu konfigurieren. Ich weiß nicht, wie ich diesen Fehler beheben soll.

Wie würden Sie diesen Fehler debuggen? Welche Schritte sollte ich unternehmen, um festzustellen, was hier wirklich vor sich geht, zusätzlich zu dem in der Fehlermeldung genannten?

Sasa Shree
quelle
11
Ein Ping ist zum Testen der SQL Server-Konnektivität unzuverlässig. ICMP-Echoanforderungen sind in Windows Server standardmäßig deaktiviert. Ein ungültiger Benutzername oder ein ungültiges Passwort ist nicht das, was der Fehler Ihnen sagt, das ist ein völlig anderer Fehler.
Sean Airey
1
Probieren Sie diesen Artikel aus, er durchläuft so ziemlich alle Schritte, die Sie zur Behebung
Sean Airey
3
Sehen Sie meine Antwort hier mit meinem Screenshot, wenn Sie diesen Fehler mit SQL Server {version} Express beim ersten Einrichten erhalten haben. Ich bin zu StackOverflow zurückgekehrt und habe meine Antwort erneut verwendet, da dies die einzige war, die funktioniert hat. stackoverflow.com/questions/1391503/…
MacGyver
Ich hatte dieses Problem auf meinem virtuellen Server, als ich eine Verbindung zum lokalen Host herstellen wollte. Es schien, dass beim Starten des Betriebssystems ein Fehler aufgetreten ist - in meinem Fall wurde alles glücklicherweise mit einem sauberen Neustart behoben.
Qohelet
Heute habe ich viel Zeit damit verbracht. Schließlich hat es für mich funktioniert: Öffnen Sie SQL Server Configuration Manager -> Protokolle für <INSTANZ> -> TCP / IP -> IP-Adressen (Registerkarte) . Gehen Sie zum letzten Eintrag IP All und erwähnen Sie TCP Port 1433 . Starten Sie nun SQL Server (INSTANCE) mit services.msc neu . Danach wurde das Problem behoben.
Ani627

Antworten:

301

Ich fand die folgenden Techniken hilfreich:

  1. Stellen Sie sicher, dass Ihr Datenbankmodul für die Annahme von Remoteverbindungen konfiguriert ist :

    • Start> Alle Programme> SQL Server 2005> Konfigurationstools> SQL Server-Oberflächenkonfiguration
    • Klicken Sie auf Oberflächenkonfiguration für Dienste und Verbindungen
    • Wählen Sie die Instanz aus, bei der ein Problem auftritt> Datenbankmodul> Remoteverbindungen
    • Aktivieren Sie lokale und Remote-Verbindungen
    • Instanz neu starten
  2. Möglicherweise müssen Sie in der Firewall eine Ausnahme für die von Ihnen verwendete SQL Server-Instanz und den verwendeten SQL Server-Port erstellen :

    • Start> Ausführen> Firewall.cpl
    • Klicken Sie auf die Registerkarte Ausnahmen
    • Fügen Sie sqlservr.exe (normalerweise in C:\Program Files (x86)\Microsoft SQL Server\MSSQL.x\MSSQL\Bin, überprüfen Sie Ihre Installationen auf den tatsächlichen Ordnerpfad ) und den Port hinzu (Standard ist 1433)
    • Überprüfen Sie auch Ihre Verbindungszeichenfolge
  3. Überprüfen Sie, ob Ihre SQL Server-Dienste ordnungsgemäß ausgeführt werden:

    • Gehen Sie zu Alle Programme> Microsoft SQL Server 2008> Konfigurationstools> SQL Server-Konfigurationsmanager> SQL Server-Dienste
    • Stellen Sie sicher, dass der SQL Server-Dienststatus ausgeführt wird.

    Stellen Sie außerdem sicher, dass sich Ihr Remote-Server im selben Netzwerk befindet . Führen Sie aus, sqlcmd -Lum festzustellen, ob Ihr Server in Ihrer Netzwerkliste enthalten ist.

  4. Aktivieren Sie TCP / IP in der SQL Server-Konfiguration

    Wenn zwei oder mehr SQL Server über das Netzwerk verbunden sind, erfolgt die gesamte Kommunikation über TCP / IP. Der Standardport der SQL Server-Installation ist 1433. Dieser Port kann über SQL Server Configuration Manager geändert werden. TCP / IP sollte aktiviert sein, damit SQL Server verbunden werden kann.

    • Gehen Sie zu Alle Programme >> Microsoft SQL Server 2008 >> Konfigurationstools >> SQL Server Configuration Manager >> Wählen Sie TCP / IP aus
    • Klicken Sie mit der rechten Maustaste auf TCP / IP >> Klicken Sie auf Aktivieren

    Sie müssen SQL Server Services neu starten, damit alle Änderungen wirksam werden. Klicken Sie mit der rechten Maustaste und gehen Sie zu den Menüeigenschaften, um den Speicherort auszuwählen, an dem der Standardport von SQL Server geändert werden kann.

Teo Chuen Wei Bryan
quelle
10
Das Aktivieren von TCP / IP in der SQL Server-Konfiguration war für mich die Lösung bei der Verwendung von SQL Server 2014 Express.
Mike Richards
73
Heute habe ich viel Zeit damit verbracht. Schließlich hat es für mich funktioniert: Öffnen Sie SQL Server Configuration Manager -> Protokolle für <INSTANZ> -> TCP / IP -> IP-Adressen (Registerkarte) . Gehen Sie zum letzten Eintrag IP All und erwähnen Sie TCP Port 1433 . Starten Sie nun SQL Server (<INSTANZ>) mit services.msc neu . Danach wurde das Problem behoben!
Ani627
1
Ich war auch mit dem speziellen Problem auf meinem lokalen SQL-Server konfrontiert und wurde gelöst, indem ich die lokalen Dienste des Betriebssystems überprüfte und nach den spezifischen SQL-Diensten suchte und sie einzeln startete. Es hat perfekt funktioniert.
Faisal Naseer
4
Ich hatte auch das gleiche Problem, angemeldet am SQL Server festgestellt, dass mssqlserer Dienst gestoppt wurde, startete es. Konnte jetzt eine Verbindung zur Instanz herstellen
Rak
15
Auch ERINNERN an ENABLE SQL Server BrowserService. Habe in meiner Zeit eine Reihe von SQL-Servern eingerichtet ... Doch dieser Schritt scheint immer unterschiedliche Szenarien zu haben :)
mschr
125

Ich habe eine Lösung für mich:

Öffnen Sie "SQL Server Configuration Manager".

Klicken Sie nun auf "SQL Server-Netzwerkkonfiguration" und dann auf "Protokolle für Namen ".

Klicken Sie mit der rechten Maustaste auf "TCP / IP" (stellen Sie sicher, dass es aktiviert ist). Klicken Sie auf Eigenschaften

Wählen Sie nun die Registerkarte "IP-Adressen" -und- Gehen Sie zum letzten Eintrag "IP All".

Geben Sie "TCP Port" 1433 ein.

Jetzt neu starten "SQL Server .Name." mit "services.msc" (winKey + r)

Es wird klappen...

Irshad Khan
quelle
Wenn ich dies versuche, aber aus irgendeinem Grund, wenn ich mit der rechten Maustaste auf "Eigenschaften" unter "TCP / IP" in Windows 10 klicke, wird das Dialogfenster dafür nicht geöffnet. Die anderen Knoten im Allgemeinen in der Baumansicht führen Popup-Dialoge ein. Hat jemand dieses Problem und Ideen, um es zu überwinden?
Ryan Betker - healthNCode
3
In SQL Server 2014 verwenden Sie (localdb) \ mssqllocaldb anstelle von (localdb) \ v11.0
Shalva Avanashvili
67
Durch Kopieren wurde mein Kommentar (der am 24. Februar 2015 - 7 Monate vor Ihrem Beitrag veröffentlicht wurde) als Antwort eingefügt , ohne mir Credits zu geben! : P
ani627
2
Das hat funktioniert. Ich konnte keine Verbindung zu SQL Server 2016 herstellen. Diese Änderungen wurden vorgenommen und es hat funktioniert! Vielen Dank.
Ankur
1
Für mich geht das. Ich musste nur die Dienste in "service.msc" starten, nachdem ich TCP / IP und Named Pipes im Konfigurationsmanager aktiviert hatte.
Alif Noushad
100

Hinzufügen meines stark positiv bewerteten Kommentars als Antwort mit Screenshots.

Ich habe viel Zeit damit verbracht, schließlich hat es für mich funktioniert:

1) Öffnen Sie SQL Server Configuration Manager -> SQL Server-Netzwerkkonfiguration -> Protokolle für <(INSTANZ)> -> TCP / IP ( doppelklicken Sie darauf).

Geben Sie hier die Bildbeschreibung ein

2) Wählen Sie -> IP-Adressen (Registerkarte) .

3) Gehen Sie zum letzten Eintrag IP All und erwähnen Sie TCP Port 1433 .

Geben Sie hier die Bildbeschreibung ein

4) Drücken Sie Win+Rund geben Sie services.msc ein .

5) Starten Sie nun SQL Server <(INSTANCE)> neu .

Geben Sie hier die Bildbeschreibung ein

Danach wurde das Problem behoben!

ani627
quelle
Arbeitete für mich, SQL Express 2012
lost_in_magento
Arbeitete für mich in SQL Server 2012 nach der Aktivierung von TCP, fügte Portnummer 1433 zu TCP ALL hinzu und startete den Dienst neu!
Chirag Khatsuriya
Für mich musste ich zusätzlich TCP 1433 und UDP 1434 in der Firewall
zulassen
83

Ich löse dieses Problem, indem ich Dienste öffne und dann den SQL Server (Sqlexpress) -Dienst starte .

Service Image

Anik Saha
quelle
3
Ich habe gesehen, wo der SQL Server-Windows-Dienst auf Manueller Starttyp eingestellt war, sodass er bei einem Neustart nicht neu gestartet wurde. Es sollte auf Automatisch eingestellt sein.
Robertburke
2
Dies ist genau das, was ich getan habe. Mein Status wurde ausgeführt und StartupType war Automatisch, aber ich war immer noch mit dem Problem konfrontiert. Daher habe ich Dienste vom Fenstertyp Ausführen verwendet. services.mscDann habe ich mit der rechten Maustaste auf SQL Server (SQL EXPRESS) für das Kontextmenü geklickt und einfach Stop and Start the Service wieder und funktioniert gut für mich, Hoffnung hilft.
Shaijut
22

Dieser Fehler trat hauptsächlich auf, wenn der SQL-Dienst gestoppt wurde. Sie müssen den Dienst neu starten. Um zu diesem Fenster zu gelangen, müssen Sie die Dienste wie folgt durchsuchen: Geben Sie hier die Bildbeschreibung ein

Suchen Sie dann nach SQLSERVER (MSSQLSERVER) und starten Sie den Dienst neu.

Geben Sie hier die Bildbeschreibung ein

Hoffe das wird funktionieren.

Debendra Dash
quelle
18

Drücken Sie window + R (Run window Open)und in Fenster ausführen ausführen "services.msc"und neue Dienste öffnen. Suchen Sie SQL Server mit dem Instanznamen in meinem Fall. SQL SERVER(SQLEXPRESS)Starten Sie dann diesen Dienst und versuchen Sie es erneut. Es funktioniert für mich. Hoffe, es funktioniert auch für Sie.Geben Sie hier die Bildbeschreibung ein

Hafiz Asad
quelle
Die Antwort wurde zuvor gegeben. Erhalten Sie keinen Grund, es erneut zu posten
Anik Saha
8
Kumpel stehen vor dem gleichen Problem, aber ich kenne kein heißes offenes Service-Fenster, dann habe ich einen Weg gefunden und dachte, mit Menschen zu teilen
Hafiz Asad
Danke, @HafizAsad. Ihre Antwort funktioniert für mich.
Adnan Ahmad
@AdnanAhmad du bist willkommen. Vielen Dank für Ihre Anerkennung.
Hafiz Asad
16

Falls Sie möglicherweise die Express Edition verwenden :

Fügen Sie "\SQLEXPRESS"nach Ihrem Servernamen hinzu

z.B "MY-SERVER\SQLEXPRESS"

Geben Sie hier die Bildbeschreibung ein

Abdulrahman Bres
quelle
13

Ich hatte den gleichen Fehler, als ich mein WinForms-Projekt (das die Arbeit mit einer SQL Server-Datenbank umfasst und auf meinem PC einwandfrei funktioniert) auf einem anderen PC ausführen wollte. Das Problem lag in der Windows-Firewall auf meinem PC. Ich habe dies gelöst, indem ich zwei Regeln hinzugefügt habe. Dies ist das gesamte Verfahren zum Zulassen von SQL Server über die Windows-Firewall:

  1. Öffnen Sie "Ausführen" und geben Sie ein services.msc
  2. Suchen Sie den Dienst für SQL Server (Instanzname) und SQL Server-Browser. Klicken Sie nacheinander mit der rechten Maustaste, wählen Sie "Eigenschaften" und kopieren Sie den Pfad zur exe-Datei
  3. Öffnen Sie dann firewall.cpl, klicken Sie auf Zulassen einer Anwendung oder fügen Sie eine Regel hinzu, fügen Sie den zuvor kopierten Pfad hinzu (es gibt ein Verfahren, das Sie befolgen müssen), aktivieren Sie Domain und Private, und deaktivieren Sie Public.

Dies ist der YouTube-Link, über den Sie das folgende Verfahren sehen können: SQL Server über die Windows-Firewall zulassen

Nussknacker
quelle
Funktioniert perfekt für mich. Wichtig: Fügen Sie Browser und Server in die Firewall ein! +1
BendEg
Es fiel mir schwer, die Datei sqlservr.exe zu finden. Dies war der Trick beim Auffinden.
Stan
11

Wenn keine der oben genannten Lösungen funktioniert (bei mir hat nichts funktioniert), starten Sie einfach Ihren Computer neu und Sie können eine Verbindung zu Ihrem SQL Server (localhost) herstellen.

Eugen Sunic
quelle
Der Grund, warum dies funktioniert, liegt darin, dass Sie gerade SQL Server installiert haben und den Computer nicht wie in der Installation angegeben neu gestartet haben. Tun Sie es also und dann werden die Dienste erstellt und alle erforderlichen Konfigurationen fehlen.
Sterling Diaz
10

Nachdem Sie alles getan haben, was hier erwähnt wird:
http://blog.sqlauthority.com/2009/05/21/sql-server-fix-error-provider-named-pipes-provider-error-40-could-not-open-a- Verbindung-zu-SQL-Server-Microsoft-SQL-Server-Fehler / Hat bei mir immer noch nicht funktioniert.

Schritte haben bei mir funktioniert:

Start > Run > cmd > sqlcmd -L

Sie werden aufgefordert, den Servernamen einzugeben. Stellen Sie sicher, dass dieser Servername mit dem übereinstimmt, mit dem Sie in der Box CONNECT TO SERVER von SQL Management Studio eine Verbindung herstellen möchten.

Ich habe diesen dummen Fehler gemacht, den ich immer wieder benutze MSSQLSERVER anstatt diesen Servernamen zu verwenden.

Hoffe, das hilft den Leuten, die wie ich dumme Fehler machen.

Vielen Dank.

Denn
quelle
7

Ich verwende SQL Server 2016 und Windows 10.

Geben Sie hier die Bildbeschreibung ein

Als erstes müssen Sie eine Remoteverbindung zu SQL Server zulassen. Ich habe im Startmenü sqlservermanager13.msc eingegeben , um den SQL Server Configuration Manager zu öffnen. Stellen Sie sicher, dass der TCP / IP-Status aktiviert ist. Geben Sie hier die Bildbeschreibung ein

Überprüfen Sie Ihre TCP-Portnummer, indem Sie auf den Namen des TCP / IP-Protokolls doppelklicken. Normalerweise ist es standardmäßig 1433.

Geben Sie hier die Bildbeschreibung ein

Mit den folgenden Verfahren wird die Windows-Firewall mithilfe der Windows-Firewall mit MMC-Snap-In (Advanced Security Microsoft Management Console) konfiguriert. Die Windows-Firewall mit erweiterter Sicherheit konfiguriert nur das aktuelle Profil.

So öffnen Sie einen Port in der Windows-Firewall für den TCP-Zugriff

  1. Klicken Sie im Startmenü auf Ausführen, geben Sie WF.msc ein, und klicken Sie dann auf OK.
  2. Klicken Sie in der Windows-Firewall mit erweiterter Sicherheit im linken Bereich mit der rechten Maustaste auf Eingehende Regeln, und klicken Sie dann im Aktionsbereich auf Neue Regel.
  3. Wählen Sie im Dialogfeld Regeltyp die Option Port aus, und klicken Sie dann auf Weiter.
  4. Wählen Sie im Dialogfeld Protokoll und Ports die Option TCP aus. Wählen Sie Bestimmte lokale Ports aus, und geben Sie die Portnummer der Instanz des Datenbankmoduls ein, z. B. 1433 für die Standardinstanz. Weiter klicken.
  5. Wählen Sie im Dialogfeld Aktion die Option Verbindung zulassen aus, und klicken Sie dann auf Weiter.
  6. Wählen Sie im Dialogfeld Profil alle Profile aus, die die Computerverbindungsumgebung beschreiben, wenn Sie eine Verbindung zum Datenbankmodul herstellen möchten, und klicken Sie dann auf Weiter.
  7. Geben Sie im Dialogfeld Name einen Namen und eine Beschreibung für diese Regel ein, und klicken Sie dann auf Fertig stellen.

Eine andere Sache zu konfigurieren.

So öffnen Sie den Zugriff auf SQL Server bei Verwendung dynamischer Ports

  1. Klicken Sie im Startmenü auf Ausführen, geben Sie WF.msc ein, und klicken Sie dann auf OK.
  2. Klicken Sie in der Windows-Firewall mit erweiterter Sicherheit im linken Bereich mit der rechten Maustaste auf Eingehende Regeln, und klicken Sie dann im Aktionsbereich auf Neue Regel.
  3. Wählen Sie im Dialogfeld Regeltyp die Option Programm aus, und klicken Sie dann auf Weiter.
  4. Wählen Sie im Dialogfeld Programm die Option Dieser Programmpfad. Klicken Sie auf Durchsuchen, navigieren Sie zu der Instanz von SQL Server, auf die Sie über die Firewall zugreifen möchten, und klicken Sie dann auf Öffnen. Standardmäßig befindet sich SQL Server unter C: \ Programme \ Microsoft SQL Server \ MSSQL13.MSSQLSERVER \ MSSQL \ Binn \ Sqlservr.exe. Weiter klicken.
  5. Wählen Sie im Dialogfeld Aktion die Option Verbindung zulassen aus, und klicken Sie dann auf Weiter.
  6. Wählen Sie im Dialogfeld Profil alle Profile aus, die die Computerverbindungsumgebung beschreiben, wenn Sie eine Verbindung zum Datenbankmodul herstellen möchten, und klicken Sie dann auf Weiter.
  7. Geben Sie im Dialogfeld Name einen Namen und eine Beschreibung für diese Regel ein, und klicken Sie dann auf Fertig stellen.

Schauen Sie sich die Microsoft-Doucmentation an. Konfigurieren Sie eine Windows-Firewall für den Zugriff auf das Datenbankmodul

Fred
quelle
Auf meinem PC Windows 10 befindet sich die SQL Server-Instanz unter C: \ Programme \ Microsoft SQL Server \ MSSQL13.SQLEXPRESS \ MSSQL \ Binn \ Sqlservr.exe
Mayer Spitzer
7

Sie können die folgenden Methoden testen.

  • ein

    1. Überprüfen Sie die Verbindungszeichenfolge des Projekts.
  • b

    1. Gehen Sie zu Dienste und starten Sie die SQLServer-Instanz neu.
  • c

    1. Öffnen Sie 'SQLServer Configuration Manager'.
    2. Wählen Sie im linken Bereich "SQLServer-Netzwerkkonfiguration" aus und erweitern Sie es
    3. Wählen Sie 'Protokolle für MSSQLServer'
    4. Klicken Sie im rechten Bereich auf "TCP / IP".
    5. Setzen Sie auf der Registerkarte "Protokoll" die Option "Aktiviert" auf "Ja".
    6. Scrollen Sie auf der Registerkarte "IP-Adressen" nach unten
    7. Stellen Sie im 'IPAll' 'TCP Port' auf 1433 ein
  • d
    1. Öffnen Sie "Firewall mit erweiterter Sicherheit".
    2. Wählen Sie auf der rechten Registerkarte "Eingehende Regeln".

Suchen Sie auf der mittleren Registerkarte den Datensatz "lokaler Port" (1433). Wenn Sie ihn nicht finden können, versuchen Sie, ihn mit den folgenden Ebenen zu erstellen

  • Klicken Sie im Startmenü auf Ausführen, geben Sie 'WF.msc' ein und klicken Sie dann auf OK
  • Klicken Sie im linken Bereich auf "Windows-Firewall mit erweiterter Sicherheit".
  • Klicken Sie im rechten Bereich mit der rechten Maustaste auf "Eingehende Regeln" und dann auf "Neue Regel".
  • Wählen Sie im Dialogfeld Regeltyp die Option 'Port' aus und klicken Sie dann auf Weiter
  • Wählen Sie im Dialogfeld Protokoll und Ports die Option 'TCP' und dann 'Spezifische lokale Ports' aus. Geben Sie dann die Portnummer 1433 ein. Klicken Sie auf Weiter
  • Wählen Sie im Dialogfeld Aktion die Option Verbindung zulassen aus, und klicken Sie dann auf Weiter
  • Aktivieren Sie im Dialogfeld "Profil" die Option "Privat" und "Öffentlich". Klicken Sie anschließend auf "Weiter"
  • Geben Sie im Dialogfeld 'Name' 'SQL 1433 Port' ein und schreiben Sie für eine Beschreibung eine eigene Beschreibung. Klicken Sie dann auf Fertig stellen
  1. Doppelklicken Sie dann auf der mittleren Registerkarte auf das gefundene Element (Instanz) oder das von Ihnen erstellte Element mit dem Namen 'SQL 1433 Port'.
  2. Wählen Sie im geöffneten Dialogfeld die Registerkarte "Bereich" (SQL Server-Eigenschaften).
  3. Auf dem lokalen PC Gehen Sie in Ihrem Browser zu google.com und suchen Sie nach "Meine IP".
  4. dann Kopie Ihrer 'IP'
  5. Gehen Sie zum Remote-Server und wählen Sie im Dialogfeld "SQL Server-Eigenschaften" der Registerkarte "Bereich" unter "Remote-IP-Adresse" die Option "Diese IP-Adressen" aus und klicken Sie auf die Schaltfläche "Hinzufügen"
  6. Wählen Sie im geöffneten Dialogfeld (IP-Adresse) die Option 'Diese IP-Adresse oder dieses Subnetz' und fügen Sie Ihre 'IP' ein. Klicken Sie auf OK.
MohammadSoori
quelle
7

Diese Lösung löst sowohl Probleme network error als auch den servicedahinter stehenden SQL Server

Ich habe hier eine ähnliche Frage beantwortet. Sie müssen die andere open Run type-> services.mscunter "Dienste" angeben.> sort by stoppedSie sehen eine Reihe von gestoppten SQL-DienstenRight click and start

Zu Beginn gibt es 4 Probleme, die die häufigsten Verbindungsfehler mit LocalDb SqlExpress Sql Server verursachen SQL Network Interfaces, error: 50 - Local Database Runtime error occurred können. Bevor Sie beginnen, müssen Sie v11 oder v12 in (localdb) \ mssqllocaldb umbenennen


Troubleshooting Steps
  1. Auf den ausgeführten Diensten wird dieses Cmd nicht ausgeführt , net start MSSQLSERVERodernet start MSSQL$ instancename
  2. Sie haben die Firewall-Ports hier nicht konfiguriert Geben Sie hier die Bildbeschreibung ein
  3. Ihre Installation hat und Problem / beschädigt (die folgenden Schritte helfen Ihnen einen schönen sauberen Start)
  4. Sie haben V11 oder 12 nicht in mssqllocaldb / SqlServer umbenannt

Ich fand, dass es am einfachsten ist, das Folgende zu tun - ich habe die Bilder und Schritte zur Hilfe angehängt.


Resolution Steps:

Überprüfen Sie zunächst, welche Instanz Sie installiert haben. Überprüfen Sie dazu die Registrierung und führen Sie cmd aus

  1. cmd> Sqllocaldb.exe i
  2. cmd> Sqllocaldb.exe s "whicheverVersionYouWantFromListBefore" Wenn dieser Schritt fehlschlägt, können Sie mit der Option dcmd> Sqllocaldb.exe d "someDb" löschen.
  3. cmd> Sqllocaldb.exe c "createSomeNewDbIfyouWantDb"
  4. cmd> Sqllocaldb.exe start "createSomeNewDbIfyouWantDb"

SqlLOCALDb_edited.png

Transformator
quelle
5

Ich hatte das gleiche Problem und das Problem war, dass ich mehrere Projekte in der Lösung ( Webund Droid) hatte und obwohl Default projectin der ausgewählt Package Manager Console, wurde die Verbindungszeichenfolge aus dem DroidProjekt verwendet:

PM> update-database -Verbose
Using StartUp project 'Droid'. <-- DROID
Using NuGet project 'Web'. <-- WEB
Specify the '-Verbose' flag to view the SQL statements being applied to the target database.
<!-- BAD TARGET DATABASE -->
Target database is: 'DefaultConnection' (DataSource: .\SQLEXPRESS, Provider: System.Data.SqlClient, Origin: Convention).
System.Data.SqlClient.SqlException (0x80131904): A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified)
   [REMOVED TEXT]
ClientConnectionId:00000000-0000-0000-0000-000000000000
Error Number:-1,State:0,Class:20
A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified)

Nach dem Einstellen der Startup Projectauf Webund die Default Projectin Package Manger Consolehabe ich es an der Arbeit.

Westerlund.io
quelle
5

Ich muss den SQL Server-Browserdienst in SQL Server Configuration Manager ausführen . Die Installation kann einen neu erstellten Dienst ohne diesen nicht erkennen.

MarkosyanArtur
quelle
1
Ich bin noch nicht da, aber ich komme näher. In Visual Studio wird danach auch die Verbindung getrennt und die Verbindung wiederhergestellt, wobei immer noch der gleiche Fehler auftritt, aber jetzt, zumindest hinter VS2015, kann ich keine Tabellen erstellen, und Datenbanken, die ich erstelle, werden jetzt ausgeführt. (ea, kein dunkles Kreuz Symbol über ihnen)
user3800527
1
Hinweis Nach Ihrem Befehl führte dies zu einem Servernamen auf einem lokalen Computer. Start> Ausführen> cmd> sqlcmd -L
user3800527
4

Die oben genannten Lösungen sollten zwar in 90% der Fälle funktionieren, aber wenn Sie diese Antwort noch lesen !!! Sie versuchen wahrscheinlich, eine Verbindung zu einem anderen Server als beabsichtigt herzustellen. Dies kann daran liegen, dass eine Konfigurationsdatei auf einen anderen SQL Server verweist als der tatsächliche Server, zu dem Sie eine Verbindung herstellen möchten.

Ist mir zumindest passiert.

Arjmand
quelle
1
Ist mir auch passiert. Sollte dies überprüft haben, bevor Sie versuchen, die Firewall zu diagnostizieren. Ich hatte die richtige Verbindungszeichenfolge, aber ich habe das falsche Projekt in der Lösung ausgeführt ...
VSO
4

Ich bin von einem Arbeitslaptop unter Windows 7 zu einem Arbeitslaptop unter Windows 10 gewechselt. Ich habe SSMS2016 unter Windows 7 erfolgreich verwendet.

Das gleiche Problem trat bei Verwendung von SSMS2012 oder SSMS2016 auf. Mein Zugriff auf die 10 SQL-Server mithilfe der Windows-Authentifizierung war immer noch der gleiche. Ich könnte dies von einem anderen Server testen. Allerdings 2 der 10 Server nicht von meinem Laptop verbinden . Beide waren MS SQL Server 9, aber ich konnte eine Verbindung zu anderen SQL Server 9-Datenbanken herstellen.

Die Lösung bestand darin , eine Firewall-Regel hinzuzufügen (unter Verwendung der Windows-Firewall mit erweiterter Sicherheit).

Erstellen Sie eine Eingangsregel für jedes SSMS, z. B. C: \ Programme (x86) \ Microsoft SQL Server \ 130 \ Tools \ Binn \ ManagementStudio \ Ssms.exe

Ich bin kein Netzwerkexperte, daher habe ich die Details nicht angegeben, aber hoffentlich weist es Sie in die richtige Richtung.


Fehlermeldung (Vor-Firewall-Regel) "Beim Herstellen einer Verbindung zu SQL Server ist ein netzwerkbezogener oder instanzspezifischer Fehler aufgetreten. Der Server wurde nicht gefunden oder war nicht verfügbar. Stellen Sie sicher, dass der Instanzname korrekt und SQL Server für konfiguriert ist Remoteverbindungen zulassen (Anbieter: SQL-Netzwerkschnittstellen, Fehler: 26 - Fehler beim Auffinden des angegebenen Servers / der angegebenen Instanz) (.Net SqlClient Data Provider) "

JohnC
quelle
4

Warum dieser Fehler so langweilig und laut ist, nur weil er in verschiedenen Situationen auftreten kann.

Ich habe hier oben alle Ansätze gemacht und werde immer noch gelutscht. Stellen Sie also sicher, dass Sie dasselbe getan haben wie ich, bevor Sie nach unten blättern.

Vielleicht bin ich nicht in der Lage, deine Situation sofort zu beheben, aber ich kann dir eine Richtung oder ein Denken aufzeigen (Derjenige, der endlich hier runterrutscht). Ich habe begonnen, über den Fehler meines laufenden Programms nachzudenken, nachdem ich sichergestellt habe, dass der Instanzname eindeutig richtig ist, und meine Datenbank so eingestellt, dass die Fernsteuerung nach den oben beschriebenen Methoden möglich ist. Danach vermutete ich, dass in meinem Codefragment der SQL-Verbindung etwas nicht stimmte.

Lösung meines Problems:

  • Überprüfen Sie meine SQL-Verbindungsfunktion

  • Klicken Sie hier, um die Konfiguration anzuzeigen

  • Neue Verbindung

Geben Sie hier die Bildbeschreibung ein

  • Wählen Sie Ihren Servernamen

Geben Sie hier die Bildbeschreibung ein

Es funktioniert für mich, wenn ich darüber nachdenke, was genau im Verbindungsprozess passiert. Ich hoffe, mein Denken wird dazu führen, dass du deinen Fehler tötest.

Chase07
quelle
Dies half mir herauszufinden, dass ich bei Verwendung von Entity Framework die Portnummer für eine LocalDB-Verbindungszeichenfolge ENTFERNEN musste.
Ryanwebjackson
4

Ich habe alle anderen Antworten auf diese Frage ausprobiert und einige, wenn nicht alle, haben wahrscheinlich dazu beigetragen, dass dies für mich funktioniert, aber ich konnte immer noch keine Remote-Verbindung zur DB herstellen. Ich habe einen SQL Server auf einer Azure-VM verwendet.

Ich erinnerte mich schließlich daran, dass die VM über Endpunkte verfügt, die vom Azure-Konto-Proxy gesteuert werden. Daher ging ich zum Azure-Portal und fügte 1433 als verfügbaren Endpunkt hinzu, um eine Verbindung zu meiner SQL-Instanz herzustellen.

Hoffe das hilft jemandem, der alle anderen Antworten ausprobiert hat und noch kein Glück hat!

John
quelle
4

Zusammenfassung

Verwenden Sie SQL Server Configuration Manager, um ein Problem zu beheben, das beim Ausführen der lokalen App im Vergleich zur Remotedatenbank auftritt, und fügen Sie einen Alias ​​für die Remotedatenbank hinzu.

Einzelheiten

Ich war kürzlich auf dieses Problem gestoßen, als ich von einem Windows 7 auf einen Windows 10-Laptop umgestiegen bin. Ich habe eine lokale Entwicklungs- und Laufzeitumgebung ausgeführt, die auf einem Remote-Server auf unsere Dev-Datenbank zugreift. Wir greifen auf die Dev-Datenbank über einen Server-Alias ​​zu, der über das SQL Server-Client-Netzwerkdienstprogramm (cliconfg.exe) eingerichtet wurde. Nachdem ich bestätigt hatte, dass der Alias ​​sowohl in der 64-Bit- als auch in der 32-Bit-Version des Dienstprogramms korrekt eingerichtet war und dass der Datenbankserver vom neuen Laptop über SSMS zugänglich war, wurde vom OP immer noch der Fehler angezeigt (nicht die IP-Adresse des OP von Kurs).

Es war erforderlich, SQL Server Configuration Manager zu verwenden, um einen Alias ​​für den Remote-Dev-Datenbankserver hinzuzufügen. Die Dinge wurden behoben.

Geben Sie hier die Bildbeschreibung ein

Bill Needels
quelle
4

Sie können den Dienststatus von MS SQL Server 2014 überprüfen. In Windows 7 können Sie dies folgendermaßen tun:

  1. Gehen Sie zur Suche und geben Sie "SQL Server 2014 Configuration Manager" ein
  2. Klicken Sie dann im linken Menü auf "SQL Server Service"
  3. Überprüfen Sie die Instanz des SQL Server-Dienststatus, wenn er gestoppt ist oder ausgeführt wird
  4. Wenn es gestoppt wurde, ändern Sie den Status in "Ausführen" und melden Sie sich bei SQL Server Management Studio 2014 an
Chamara
quelle
3

Mein Problem begann, als ich versuchte, den Server von IIS Express auf Local IIS zu ändern (während ich LocalDB verwendete ).

Geben Sie hier die Bildbeschreibung ein

Ich habe LocalDB (für Entwicklungszwecke) verwendet, und als ich von Local IIS zu IIS Express zurückkehrte, hatte Visual Studio meine Datenquelle von Data Source = (LocalDb) \ MSSQLLocalDB auf Data Source =. \ SQLEXPRESS umgestellt

Falsche Verbindungszeichenfolge

<add name="DefaultConnection" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\SurveyTestsDB.mdf;Initial Catalog=SurveyTestsDB;Integrated Security=True;User Instance=True" providerName="System.Data.SqlClient" />

Richtige Verbindungszeichenfolge

<add name="DefaultConnection" connectionString="Data Source=(LocalDb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\SurveyTestsDB.mdf;Initial Catalog=SurveyTestsDB;Integrated Security=True" providerName="System.Data.SqlClient" />

Hoffe das hilft jemandem da draußen.

Megamaiku
quelle
Machen Sie auch nicht den dummen Fehler, / anstelle von \ in der Verbindungszeichenfolge zu verwenden.
Andrew Pate
3

Stellen Sie neben dem Versuch von Teo Chuen Wei Bryan sicher, dass Sie sich auch auf den richtigen Server- / Instanznamen in der Verbindungszeichenfolge beziehen.

Wenn Sie die Kurzform Hostname / Instanz auf dem Datenbankserver oder in der Datei web.config verwenden, stellen Sie sicher, dass Sie den vollqualifizierten Domänennamen (FQDN) / die Instanz verwenden

Um die Konnektivität von einem Server zu testen, auf dem der SQL Server-Client NICHT vorhanden ist,

-> Erstellen Sie eine Textdatei und ändern Sie deren Dateierweiterung in .udl

-> Klicken Sie mit der rechten Maustaste auf die Datei und Sie sehen die Registerkarte Verbindung.

-> Geben Sie den Servernamen und die Anmeldeinformationen ein, um die Verbindung zum Datenbankserver zu testen.

Hoffe das hilft.

SanthoshM
quelle
3

Wenn dieser Fehler beispielsweise in einer Produktionsumgebung plötzlich auftritt und sich nichts geändert hat, versuchen Sie die folgenden 4 Elemente in der folgenden Reihenfolge, um festzustellen, ob er behoben wird.

  1. Starten Sie den SQL Server-Dienst neu.
  2. Starten Sie den Dienst (z. B. IIS) neu, der den SQL Server aufruft. (Das Problem liegt wahrscheinlich hier vor, wenn die Zeit zwischen dem Start des Dienstaufrufs an SQL Server und dem Zeitpunkt, an dem der Antwortfehler angezeigt wird, sehr kurz ist (etwa eine oder zwei Sekunden).
  3. Neustart des Servers SQL Server ist eingeschaltet.
  4. Starten Sie den Server neu, auf dem sich der aufrufende Dienst befindet.
Barka
quelle
3

Als dieser Fehler in Visual Studio auftrat,

„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 dass SQL Server so konfiguriert ist, dass Remoteverbindungen zugelassen werden. (Provider: Named Pipes Provider, Fehler: 40 - Verbindung zu SQL Server konnte nicht hergestellt werden) ”

... war es während der Ausführung des folgenden C # -Codes, der versuchte, meine SQL Server-Daten abzurufen, um sie in einem Raster anzuzeigen. Die Unterbrechung trat genau in der Zeile auf, in der connect.Open () angegeben ist:

        using (var connect = Connections.mySqlConnection)
        {
            const string query = "SELECT Name, Birthdate, Narrative FROM Friends";
            using (var command = new SqlCommand(query, connect))
            {
                connect.Open();
                using (var dr = command.ExecuteReader())
                {
                    while (dr.Read())
                    {
                        // blah
                    }
                }
            }
        }

Es war unerklärlich, weil die SQL-Abfrage sehr einfach war, ich die richtige Verbindungszeichenfolge hatte und der Datenbankserver verfügbar war. Ich habe mich entschlossen, die eigentliche SQL-Abfrage manuell in SQL Management Studio auszuführen. Sie lief einwandfrei und lieferte mehrere Datensätze. In den Abfrageergebnissen fiel jedoch eines auf: In einem Feld vom Typ varchar (max) in der Tabelle "Friends" befand sich ein nicht ordnungsgemäß codierter HTML-Text (insbesondere einige codierte Kommentarsymbole der Art, <!--die in den Daten der Spalte "Narrative" enthalten sind). Die verdächtige Datenzeile sah folgendermaßen aus:

Name    Birthdate    Narrative
====    =========    ============== 
Fred    21-Oct-79    &lt;!--HTML Comment -->Once upon a time...

Beachten Sie das codierte HTML-Symbol " &lt;", das für ein "<" - Zeichen steht. Irgendwie gelangte das in die Datenbank und mein C # -Code konnte es nicht aufnehmen! Es ist jedes Mal direkt in der Zeile connect.Open () fehlgeschlagen! Nachdem ich diese eine Datenzeile in der Datenbanktabelle Friends manuell bearbeitet und stattdessen das dekodierte Zeichen "<" eingegeben hatte, funktionierte alles! So hätte diese Reihe aussehen sollen:

Name    Birthdate    Narrative
====    =========    ============== 
Fred    21-Oct-79    <!--HTML Comment -->Once upon a time...

Ich habe die eine fehlerhafte Zeile, die ich hatte, mit dieser einfachen UPDATE-Anweisung unten bearbeitet. Wenn Sie jedoch mehrere fehlerhafte Zeilen mit codiertem HTML hatten, benötigen Sie möglicherweise eine ausführlichere UPDATE-Anweisung, die die REPLACE-Funktion verwendet:

UPDATE Friends SET Narrative = '<!--HTML Comment -->Once upon a time...' WHERE Narrative LIKE '&lt%'

Die Moral der Geschichte lautet also (zumindest in meinem Fall), Ihren HTML-Inhalt zu bereinigen, bevor Sie ihn in der Datenbank speichern, und Sie werden diesen kryptischen SQL Server-Fehler überhaupt nicht erhalten! (Äh, die ordnungsgemäße Bereinigung / Dekodierung Ihres HTML-Inhalts ist Gegenstand einer weiteren Diskussion, die einer separaten StackOverflow-Suche würdig ist, wenn Sie weitere Informationen benötigen!)

ShieldOfSalvation
quelle
3

Fügen Sie am Ende Ihrer Verbindungszeichenfolge eine ,und eine Portnummer (wie in ,1433) hinzu.

Kalyan Hurkat
quelle
3

Die Anordnung der XML-Tags in Web.config ist wichtig

Zuerst

<configSections>
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</configSections>

Nach

<connectionStrings>
  <add name="SqlConnectionString" connectionString="Data Source=.; Initial Catalog=TestDB; Trusted_Connection=True;" providerName="System.Data.SqlClient" />
</connectionStrings>
Pejman
quelle
3

In meiner Situation hatte der MSSQLSERVER-Dienst ein Problem, daher habe ich den Dienst neu gestartet und das Problem behoben.

Daher empfehle ich, zur Dienst-App zu gehen, indem Sie: Windows-Schlüssel, "Dienste" suchen und dann Ihre SQL-Instanz normalerweise "SQL Server (MSSQLSERVER)" unter für Microsoft SQL Server suchen. Klicken Sie mit der rechten Maustaste auf Dienst und klicken Sie auf Start. Wenn deaktiviert, klicken Sie auf Neu starten.

Mohamad Reza Shahrestani
quelle
2

Dieser Fehler tritt auf, wenn Ihre SQL Server-Instanz ist stopped .

Gehen Sie zu allen Programmen> SQL Server> Konfigurationstools> SQL Server-Konfigurationsmanager

Klicken Sie dann auf SQL SERVER SERVICES. Die Liste der Instanzen wird angezeigt. Wählen Sie die betreffende Instanz aus und klicken Sie auf das Wiedergabesymbol in der oberen Symbolleiste. Ich hoffe, dies hilft.

Diese Antwort ist sehr spät (aber besser spät als nie;)

Alex
quelle
2

Ich habe dieses Problem behoben, indem ich das Projekt festgelegt habe, das Entity Framework als Startprojekt verwendet, und dann den Befehl "update-database" ausgeführt habe.

user1796440
quelle