Ich kann keine Verbindung zu meinem lokalen SQL Server 2008 herstellen.

18

Ich habe gerade SQL Server 2008 installiert und kann mit SQL Server Management Studio keine Verbindung dazu herstellen. Meine Absicht ist es, meinen lokalen Windows-Benutzer nur authentifizieren zu lassen, aber ich bin mir nicht ganz sicher, wie ich das machen soll .

Im Verbindungsdialog schreibe ich:

Server type: Database Engine
Server name: (local)
Authentication: Windows Authentication

Meine erste Frage wäre, ob ich mich damit verbinden soll. Beim Versuch, eine Verbindung herzustellen, wird folgende Fehlermeldung angezeigt:

TITLE: Connect to Server
------------------------------

Cannot connect to (local).

------------------------------
ADDITIONAL INFORMATION:

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: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)
(Microsoft SQL Server, Error: 2)

For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&EvtSrc=MSSQLServer&EvtID=2&LinkId=20476

------------------------------
BUTTONS:

OK
------------------------------

Ich ging zu der URL, die dort angezeigt wurde, und sie besagt im Grunde genommen "Stellen Sie sicher, dass der SQL-Server ausgeführt wird". Ich denke es ist aber ich bin nicht ganz sicher.

Ich habe die Windows-Firewall deaktiviert (dies ist Windows 7 7100 x86). Ich habe auch das Anmeldesystem im SQL Server-Konfigurations-Manager geändert, aber es scheint kein Problem bei der Anmeldung zu sein, aber ich kann nicht einmal den Socket dafür öffnen. Auf demselben Tool habe ich alle Protokolle für "SQL Server-Netzwerkkonfiguration" -> "Protokolle für SQLEXPRESS" ohne Erfolg aktiviert. Mir gehen die Ideen aus. Was kann ich noch probieren?

pupeno
quelle
Klingt so, als wäre die richtige Antwort hier die benannte Instanz. . \ SqlExpress Punkt bedeutet localhost und \ SqlExpress ist die Instanz, zu der Sie eine Verbindung herstellen möchten. Für diejenigen, die es nicht wissen, können Sie mehr als einen SQL Server auf einem Computer haben. SqlExpress ist in diesem Fall nur der Name und keine strenge Angabe des Typs oder der strengen Überprüfung des Produkts.
p.campbell

Antworten:

23

OK, können Sie Ihre Dienstekonsole öffnen und nach unten zu S für SQL Server scrollen? Sie sollten jetzt die Dienste sehen. Stellen Sie sicher, dass SQL Server (SQLEXPRESS) ausgeführt wird, und versuchen Sie es dann mit. \ SQLEXPRESS anstelle von (local).

Also nach deinem Beispiel:

Server type: Database Engine
Server name: .\SQLEXPRESS
Authentication: Windows Authentication

Hoffe das hilft

Update: Diese Anweisungen basieren auf der Annahme, dass Sie die Express Edition und nicht die Dev / Std / Ent Edition von SQL Server ausführen


Stellen Sie sicher, dass die entsprechenden Protokolle aktiviert sind:

  1. Starten Sie den SQL Configuration Manager (dh Start-> Programme-> SQL Server-> Konfigurationstools)
  2. Erweitern Sie die SQL Native Client-Konfiguration
  3. Klicken Sie auf Client-Protokolle. (Möglicherweise sind 32-Bit- und 64-Bit-Protokolle für beide verfügbar.)
  4. Stellen Sie sicher, dass Shared Memory, TCP / IP und Named Pipes in dieser Reihenfolge aktiviert sind
  5. Erweitern Sie SQL Server-Netzwerkkonfiguration
  6. Stellen Sie sicher, dass der gemeinsame Speicher für SQLEXPRESS und / oder MSSQLSERVER aktiviert ist
  7. Klicken Sie auf SQL Server-Dienste
  8. Starten Sie alle ausgeführten Dienste neu

Sie sollten sich jetzt bei der Instanz anmelden können


Wenn Sie feststellen, dass Sie sich überhaupt nicht anmelden können, müssen Sie möglicherweise diese Anweisungen befolgen, um SQL Server in den Einzelbenutzermodus zu versetzen. Sehen Sie hier für die vollständigen Anweisungen von Microsoft.

Standardmäßig befindet sich sqlservr.exe unter C: \ Programme \ Microsoft SQL Server \ MSSQL10_50.MSSQLSERVER \ MSSQL \ Binn. Wenn eine zweite Instanz von SQL Server installiert ist, befindet sich eine zweite Kopie von sqlservr.exe in einem Verzeichnis wie

C: \ Programme \ Microsoft SQL Server \ MSSQL10_50.MSSQLSERVER \ MSSQL \ binn.

Sie können eine Instanz von SQL Server mithilfe von sqlservr.exe von einer anderen Instanz aus starten. SQL Server startet jedoch auch die Version der falschen Instanz, einschließlich Service Packs, was zu unerwarteten Ergebnissen führen kann.

Um dies zu vermeiden, verwenden Sie den MS-DOS-Befehl change directory (cd), um vor dem Starten von sqlservr.exe in das richtige Verzeichnis zu wechseln, wie im folgenden Beispiel gezeigt.

cd \ Programme \ Microsoft SQL Server \ MSSQL10_50.1 \ MSSQL \ Binn

So starten Sie die Standardinstanz von SQL Server im Einzelbenutzermodus über eine Eingabeaufforderung

Geben Sie an einer Eingabeaufforderung den folgenden Befehl ein:

sqlservr.exe -m

Der Einzelbenutzermodus kann hilfreich sein, um eine Notfallwartung durchzuführen, wenn andere Benutzer keine Verbindung zu SQL Server herstellen sollen, jeder Benutzer jedoch Einzelbenutzer werden kann, einschließlich des SQL Server-Agentendiensts.

Sie sollten jetzt in der Lage sein, sich bei der Instanz anzumelden, sich der Registerkarte "Sicherheit" hinzuzufügen und vollen Zugriff zu gewähren.

Alternative Methode:

Hier gibt es ein Skript , das behauptet, den aktuellen Benutzer der SQL Server- Systemadministratorrolle hinzuzufügen. Dies funktioniert möglicherweise im Einzelbenutzermodus, ich habe es jedoch nicht überprüft

Wayne
quelle
Ist die Dienstekonsole die Registerkarte Dienste im Windows Task-Manager? (Win7). Wie auch immer, SQLEXPRESS ist nicht da, wie führe ich es aus?
Schüler
1
Service-Konsole ist Start -> Systemsteuerung -> Verwaltungstools -> Dienste
Wayne
Egal, ich habe die Services-Konsole gefunden, SQLEXPRESS wird ausgeführt.
pupeno
Die Verbindung zu. \ SQLEXPRESS hat den Trick gemacht. Vielen Dank Wayne!
Schüler
1
Vielen Dank ... es wurde verrückt, das herauszufinden! (Hinweis für andere in ". \ SQLEXPRESS" ... "SQLEXPRESS" ist die Instanz-ID, die Sie dem Server während der Installation gegeben haben.
RiddlerDev
0

(local) wird in 127.0.0.1 aufgelöst und funktioniert nur für Standardeinstellungen. Instanzen, wie der Standard für SQL Server Express, benötigen einen echten Namen. Beachten Sie, dass Sie das Fehlerprotokoll für SQL Server (SQL-Installationsordner, dann Protokoll) überprüfen können und einer der ersten Einträge Ihnen die IP, den Port und den Namen der Instanz angibt.

Sie könnten diese stattdessen verwenden. Instanznamen sind gut zu verwenden, da sie ziemlich konsistent sind. Beachten Sie, dass sie auch dynamische Ports verwenden, sodass dies bei jedem Neustart ein anderer Port sein kann. Der SQL Server-Konfigurations-Manager kann einen bestimmten Port festlegen. Ich bin mir nicht sicher über die Express-Tools.

Steve Jones
quelle