In SQL Server Express 2012/2016 kann keine Verbindung zu localhost hergestellt werden

97

Ich habe gerade die neueste Version von SQL Express 2012 heruntergeladen, kann jedoch keine Verbindung zu localhost herstellen. Ich habe versucht, localhost \ SQLExpress und Windows zu authentifizieren, aber es wird eine Fehlermeldung angezeigt, dass keine Verbindung hergestellt werden kann. Vermisse ich hier etwas? Ich habe SQL Server 2008 bereits verwendet und hatte noch nie Probleme beim Herstellen einer Verbindung zu localhost. Es scheint, dass es es nicht einmal finden kann. Auch in den Diensten sehe ich nur einen SQL Server VSS Writer. Ist das so wie es sein sollte? Oder fehlt mir etwas? Vielen Dank

dido
quelle
1
Die Installation scheint nicht gut gelaufen zu sein. Haben Sie versucht, es zu reparieren / neu zu installieren?
Vikdor
1
Sind Sie sicher, dass Sie das Installationsprogramm für den Server gefunden haben, im Gegensatz beispielsweise zu einem Management Studio-Installationsprogramm?
Damien_The_Unbeliever

Antworten:

181

Laut Aaron Bertand :

  1. Sie müssen überprüfen, ob der SQL Server-Dienst ausgeführt wird. Sie können dies tun, indem Sie zu gehen Start > Control Panel > Administrative Tools > Servicesund überprüfen, ob der Dienst SQL Server ( SQLEXPRESS) ausgeführt wird. Wenn nicht, starten Sie es.

  2. Stellen Sie im Dienst-Applet außerdem sicher, dass der Dienst- SQL-Browser gestartet ist. Wenn nicht, starten Sie es .

  3. Sie müssen sicherstellen, dass SQL Server TCP / IP oder Named Pipes verwenden darf. Sie können diese aktivieren, indem Sie den SQL Server-Konfigurationsmanager in Start > Programs > Microsoft SQL Server 2012 > Configuration Tools(oder SQL Server Configuration Manager) öffnen und sicherstellen, dass TCP / IP und Named Pipes aktiviert sind . Wenn Sie den SQL Server-Konfigurationsmanager nicht im Startmenü finden, können Sie das MMC-Snap-In manuell starten. Überprüfen Sie den SQL Server Configuration Manager auf den Pfad zum Snap-In entsprechend Ihrer Version.

    SQL Server-Konfigurationsmanager

  4. Überprüfen Sie, ob Ihr SQL Server-Verbindungsauthentifizierungsmodus mit Ihrer Verbindungszeichenfolge übereinstimmt:

    • Wenn Sie eine Verbindung mit einem Benutzernamen und einem Kennwort herstellen, müssen Sie SQL Server so konfigurieren, dass er den "SQL Server-Authentifizierungsmodus" akzeptiert:

      -- YOU MUST RESTART YOUR SQL SERVER AFTER RUNNING THIS!
      USE [master]
      GO
      DECLARE @SqlServerAndWindowsAuthenticationMode INT = 2;
      EXEC xp_instance_regwrite
        N'HKEY_LOCAL_MACHINE',
        N'Software\Microsoft\MSSQLServer\MSSQLServer',
        N'LoginMode',
        REG_DWORD,
        @SqlServerAndWindowsAuthenticationMode;
      GO
      
    • Wenn Sie eine Verbindung mit "Integrated Security = true" (Windows-Modus) herstellen und dieser Fehler nur beim Debuggen in Webanwendungen auftritt, müssen Sie ApplicationPoolIdentity als SQL Server-Anmeldung hinzufügen :
  5. Andernfalls ausführen Start -> Run -> Services.mscWenn ja, wird es ausgeführt?

Wenn es dann nicht läuft

Es hört sich so an, als hätten Sie nicht alles installiert. Starten Sie die Installationsdatei und wählen Sie die Option "Neuinstallation oder Hinzufügen von Funktionen zu einer vorhandenen Installation". Von dort aus sollten Sie sicherstellen können, dass der Datenbankmoduldienst installiert wird.

Ravindra Bagale
quelle
2
@dido: Start-> Run-> Services.msc
Ravindra Bagale
3
Eine andere zu überprüfende Sache ist der Instanzname. Abhängig davon, wie SQL Server installiert wurde, müssen Sie möglicherweise nach dem Host einen Instanznamen angeben.
Arvo Bowen
"TCP / IP und Named Pipes sind aktiviert" scheint nach der ersten Installation notwendig zu sein
James A Mohler
3
Es war dumm, aber für mich bestand das Problem darin, "localhost" als Servernamen zu verwenden und nicht "localhost \ SQLEXPRESS01", wie in der Installation festgelegt
Guy s
1
In meinem Fall war SQLBrowser deaktiviert und das Konfigurationstool wurde nicht im Ordner "sql tools" aufgeführt. So starten Sie das Konfigurationstool über cmd https://docs.microsoft.com/en-us/sql/relational-databases/sql-server-configuration-manager?view=sql-server-2017 So starten Sie den SQLBrowser automatisch, wenn die Konfiguration Tool schlägt fehl /programming/21375014/i-cannot-start-sql-server-browser
steven87vt
121

Gehen Sie zu Start -> Programme -> Microsoft SQL Server JJJJ -> Konfigurationstools -> SQL Server JJJJ Konfigurationsmanager oder führen Sie "SQLServerManager12.msc" aus.

Stellen Sie sicher, dass TCP / IP unter Clientprotokolle aktiviert ist.

Gehen Sie dann zu "SQL Server-Netzwerkkonfiguration" und doppelklicken Sie auf TCP / IP. Klicken Sie auf die Registerkarte "IP-Adressen" und scrollen Sie nach unten. Entfernen Sie unter "IP All" die dynamischen TCP-Ports, falls vorhanden, und setzen Sie den TCP-Port auf 1433. Klicken Sie auf OK, kehren Sie zu "SQL Server Services" zurück und starten Sie die SQL Server-Instanz neu. Jetzt kannst du dich über localhost verbinden, zumindest könnte ich.

Geben Sie hier die Bildbeschreibung ein

Beachten Sie, dass dieser Fehler natürlich auch beim Herstellen einer Verbindung von anderen Anwendungen aus auftreten kann. Beispiel für eine normale Web.configVerbindungszeichenfolge für C # -Webanwendungen:

<connectionStrings>
    <add name="DefaultConnection" connectionString="server=localhost;database=myDb;uid=myUser;password=myPass;" />
</connectionStrings>
Ogglas
quelle
4
Endlich hat das bei mir funktioniert! Ich hatte den Port in IP1, IP2, ... geändert, aber nicht in IPAll. Das hat es geschafft, danke!
George
2
@ George genau das gleiche wie du. Ich hatte sogar die Firewall deaktiviert und nichts funktionierte. In TCP Dynamic Ports gab es einen 40xxx- Port. Ich habe es entfernt und 1433 in den TCP-Port für IPAll gestellt. Vielen Dank!
Alisson
Dies war auch für mich der Schlüssel.
Erik Olson
1
Nachdem ich viele Stunden lang meinen Kopf gegen die Wand geschlagen hatte, funktionierte dies endlich. Danke dir.
Top Cat
Tolle Lösung. Es rettet meinen Tag. Vielen Dank!
Lavande
13

In SQL SERVER EXPRESS 2012 sollten Sie "(localdb) \ MSSQLLocalDB" als Datenquellennamen verwenden. Sie können beispielsweise eine solche Verbindungszeichenfolge verwenden

Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=master;Integrated Security=True;
ASCHE
quelle
10

Ich hatte ein ähnliches Problem - vielleicht hilft meine Lösung. Ich habe gerade MSSQL EX 2012 (Standardinstallation) installiert und versucht, eine Verbindung mit VS2012 EX herzustellen. Keine Freude. Ich habe mir dann die Dienste angesehen und bestätigt, dass SQL Server (SQLEXPRESS) tatsächlich ausgeführt wird.

Ich habe jedoch einen anderen interessanten Dienst namens SQL Server Browser gesehen, der deaktiviert wurde. Ich habe es aktiviert, ausgelöst und konnte dann den Servernamen in einer neuen Verbindung in VS2012 EX abrufen und eine Verbindung herstellen.

Seltsam, dass sie einen Dienst deaktivieren würden, der für die Verbindung von VS erforderlich ist.

Michael Lawrence
quelle
Es ist keine Verbindung erforderlich. Ich habe es deaktiviert und ich kann gut verbinden. Dies erleichtert die Arbeit nur, wenn Sie nicht genau wissen, mit welchem ​​Host- / Instanznamen eine Verbindung hergestellt werden soll, da diese Dinge von anderer Software abgefragt werden können.
Simon Morgan
8

Probieren Sie zuerst die beliebteste Lösung von Ravindra Bagale aus .

Wenn Ihre Verbindung von localhost zur Datenbank immer noch mit einem Fehler wie dem folgenden fehlschlägt:

Es kann keine Verbindung zur SQL Server-Datenbank hergestellt werden. Fehler: Die TCP / IP-Verbindung zum Host [IP-Adresse], Port 1433, ist fehlgeschlagen. Fehler: "Verbindung abgelehnt: Verbindung herstellen. Überprüfen Sie die Verbindungseigenschaften. Stellen Sie sicher, dass eine Instanz von SQL Server auf dem Host ausgeführt wird und TCP / IP-Verbindungen am Port akzeptiert. Stellen Sie sicher, dass TCP-Verbindungen zum Port nicht von einer Firewall blockiert werden . "

  1. Öffnen Sie den SQL Server Configuration Manager.
  2. Erweitern Sie die SQL Server-Netzwerkkonfiguration für die betreffende Serverinstanz.
  3. Doppelklicken Sie auf "TCP / IP".
  4. Setzen Sie im Abschnitt "Protokoll" "Aktiviert" auf "Ja".
  5. Stellen Sie im Abschnitt "IP-Adressen" den TCP-Port unter "IP All" ein (standardmäßig 1433).
  6. Suchen Sie im Abschnitt "IP-Adressen" nach Unterabschnitten mit den IP-Adressen 127.0.0.1 (für IPv4) und :: 1 (für IPv6) und setzen Sie sowohl "Aktiviert" als auch "Aktiv" auf "Ja" und den TCP-Port auf 1433.

    TCP / IP-Eigenschaften

  7. Gehen Sie zu Start > Control Panel > Administrative Tools > Servicesund starten Sie den SQL Server-Dienst neu ( SQLEXPRESS).

naXa
quelle
Ich habe die anderen oben genannten Lösungen ausprobiert, bevor ich hierher kam. Dieser hat es für mich behoben! Außerdem habe ich festgestellt, dass das Herunterladen eines Objekts namens psping mir beim Testen der Verbindung geholfen hat. Beispiel: psping 127.0.0.1:1433
JMI MADISON
7

Überprüfen Sie zunächst, ob der SQL Server-Dienst ausgeführt oder gestoppt wird. Wenn er gestoppt ist, starten Sie ihn einfach. Führen Sie dazu die folgenden Schritte aus.

1.Start -> Ausführen -> Services.msc

Geben Sie hier die Bildbeschreibung ein

  1. Gehen Sie im Bedienfeld „Dienste“ zur Registerkarte „Standard“ und suchen Sie nach SQl Server (SQL2014).

"SQL2014" wird von mir angegeben, es kann in Ihrem Fall ein anderer Name sein

Geben Sie hier die Bildbeschreibung ein

Sobald Sie den SQL-Dienst gestartet haben, können Sie eine Verbindung zur lokalen Datenbank herstellen.

hoffe es wird jemandem helfen.

PK-1825
quelle
4

Alle meine Dienste wurden wie erwartet ausgeführt und ich konnte immer noch keine Verbindung herstellen.

Ich musste den Abschnitt mit den TCP / IP-Eigenschaften im SQL Server-Konfigurationsmanager für meine SQL Server Express-Protokolle aktualisieren und den IPALL- Port auf 1433 setzen, um wie erwartet eine Verbindung zum Server herzustellen .

Geben Sie hier die Bildbeschreibung ein

Kontaktmatt
quelle
3

Versuchen Sie, von der Windows-Authentifizierung in den gemischten Modus zu wechseln

Guru1
quelle
1

Das ist seltsam, ich habe ein ähnliches Problem. Ich habe das Paket für SQL 2012 Express mit Tools heruntergeladen, aber das Datenbankmodul wurde nicht installiert.

Ich habe den anderen von der MS-Site heruntergeladen und dieser hat das Datenbankmodul installiert. Nach einem Neustart waren die Dienste aufgelistet und betriebsbereit.

user2832504
quelle
1

Meine Situation

  • leerer Instanzname in SQL Server Management Studio> Wählen Sie Ihr Datenbankmodul aus> Rechte Maustaste> Eigenschaften (Servereigenschaften)> Verbindungseigenschaften der Linkansicht> Produkt> Instanzname ist leer

  • Datenquelle =. \ SQLEXPRESS hat nicht funktioniert => localhost in web.config verwenden (siehe unten)

Lösung : in web.config

xxxxxx = Name meiner Datenbank ohne .mdf yyyyyy = Name meiner Datenbank im VS2012-Datenbank-Explorer

Sie können die Verwendung von TCP anstelle des gemeinsam genutzten Speichers erzwingen, indem Sie dem Servernamen in der Verbindungszeichenfolge tcp: voranstellen oder localhost verwenden.

http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.connectionstring%28v=vs.110%29.aspx

Marc Van Rumste
quelle
1

Ich hatte das gleiche Problem und stellte fest, dass dies geschah, nachdem ich ein Update für mein SQL 2012 installiert hatte. Was es für mich behoben hat, war, in Programme und Funktionen zu gehen und eine Reparatur daran durchzuführen.

Mur
quelle
1

Das Problem für mich war, dass ich nicht spezifizierte .\. Ich habe nur den Namen der Instanz angegeben:

  • funktioniert nicht: SQL2016
  • hat funktioniert: .\SQL2016
Cosmin
quelle
1

Versuchen Sie diesen Schritt, nachdem Sie die von @ Ravindra Bagale erwähnten Schritte ausgeführt haben. Server name: localhost\{Instance name you were gave}

Geben Sie hier die Bildbeschreibung ein

Mohamed Musthaque
quelle
0

Versuchen Sie, den Benutzer, dem der Dienst gehört, in Local System zu ändern, oder verwenden Sie Ihr Administratorkonto.

Unter Dienste habe ich die Anmeldung für Service SQL Server (MSSQLSERVER) von NT Service \ Sql ... zu Local System geändert. Klicken Sie mit der rechten Maustaste auf den Dienst, wechseln Sie zur Registerkarte Anmelden und aktivieren Sie das Optionsfeld Lokales Systemkonto. Sie können auch einen anderen Benutzer zwingen, es ebenfalls auszuführen, wenn dies besser passt.

DavidTheDev
quelle