Derzeit kann nur ein Administrator eine Verbindung herstellen (MS SQL Server-Fehler 18461)

13

Ich experimentierte mit dem Effekt, SQL Server eine kleine Menge an Speicher zu geben, von dem ich dachte, dass er wiederhergestellt werden würde.

Ich habe SQL Server so konfiguriert, dass 200 MB Arbeitsspeicher verwendet werden, jetzt möchte es nicht mehr gestartet werden. Ich habe einige Suchvorgänge im Internet ausgeführt und es wurde empfohlen, SQL Server im Einzelbenutzermodus zu starten. Ich erhalte jedoch den Fehler

Anmeldung für Benutzer A fehlgeschlagen. Grund: Der Server befindet sich im Einzelbenutzermodus. Derzeit kann nur ein Administrator eine Verbindung herstellen (Microsoft SQL Server, Fehler: 18461)

Bildbeschreibung hier eingeben

Ich habe den SQL Server-Agenten gestoppt.

CodeWi
quelle
2
Warum nur 200MB Speicher? Für die Express Edition benötigen Sie mindestens 512MB. msdn.microsoft.com/en-us/library/ms143506(v=sql.120).aspx#pmosr
McNets
Überprüfen Sie diesen Link: dba.stackexchange.com/questions/50797/cannot-use-sqlcmd
CR241

Antworten:

22

Wenn Sie SQL Server im Einzelbenutzermodus starten, kann nur ein Administrator gleichzeitig eine Verbindung herstellen.

Hier geschieht wahrscheinlich, dass ein Dienst eine Sysadmin-Anmeldung verwendet, um eine Verbindung herzustellen, z. B. Reporting Services oder SQL Server-Agent.

Wenn Sie SQL Server im Einzelbenutzermodus starten, können Sie eine Clientanwendung angeben, damit nur diese Anwendung eine Verbindung herstellen kann.

Schauen Sie sich die Befehlszeilenoptionen an, in denen sie aufgelistet sind:

-m "Name der Client-Anwendung"

Wenn Sie die Option -m mit SQLCMD oder SQL Server Management Studio verwenden, können Sie die Verbindungen zu einer angegebenen Clientanwendung beschränken. Beispielsweise begrenzt -m "SQLCMD" die Verbindungen auf eine einzelne Verbindung, und diese Verbindung muss sich als das SQLCMD-Clientprogramm identifizieren. Verwenden Sie diese Option, wenn Sie SQL Server im Einzelbenutzermodus starten und eine unbekannte Clientanwendung die einzige verfügbare Verbindung verwendet. Verwenden Sie zum Herstellen einer Verbindung über den Abfrage-Editor in Management Studio -m "Microsoft SQL Server Management Studio - Abfrage".

Der Name der Client-Anwendung unterscheidet zwischen Groß- und Kleinschreibung.

Wenn Sie auf diese Weise eine Verbindung herstellen können, ändern Sie den maximalen Serverspeicher in einen angemessenen Wert. Ich nehme an, dass Sie eine Verbindung herstellen können, da Sie sonst wahrscheinlich etwas erhalten würden, da "am anderen Ende der Pipe kein Prozess stattfindet", und ich davon ausgehen würde, dass Ihr Server ausgeführt wird.

Wenn Sie sich jedoch nicht bei SQL Server anmelden können, weil Ihre Speicherkonfiguration dies nicht zulässt, können Sie SQL Server mit der -fOption in einer minimalen Konfiguration starten .

-f

Startet eine Instanz von SQL Server mit minimaler Konfiguration. Dies ist nützlich, wenn das Festlegen eines Konfigurationswerts (z. B. Überbelegung des Speichers) den Start des Servers verhindert hat. Durch das Starten von SQL Server im minimalen Konfigurationsmodus wird SQL Server in den Einzelbenutzermodus versetzt. Weitere Informationen finden Sie in der folgenden Beschreibung zu -m.

Hinweis: SQL Server kann nicht gestartet werden, nachdem der "maximale Serverspeicher" versehentlich auf 0 gesetzt wurde

Tom V - Team Monica
quelle
7
  • Starten Sie die SQL-Instanz im minimalen Konfigurationsmodus

    NET START MSSQLSERVER /f
  • Stellen Sie über dasselbe Cmd-Fenster eine Verbindung zur Instanz her, und ändern Sie die Einstellung für den maximalen Speicher:

    SQLCMD -S Server/Instance -E

    Sie sollten eine Eingabeaufforderung sehen, die so aussieht:

    1> 

Standardmäßig steht die maximale Speichereinstellung möglicherweise nicht zum Anzeigen und Ändern zur Verfügung. Verwenden Sie die folgende Abfrage, um dieses Verhalten zu ändern:

sp_configure 'show advanced options', 1;  
GO  
RECONFIGURE;  
GO  
sp_configure 'max server memory', 4096;  
GO  
RECONFIGURE;  
GO  

Starten Sie die Instanz in Configuration Manager neu.

Ramakant Dadhichi
quelle
Die beste Lösung für <SQL Server kann nicht gestartet werden, nachdem versehentlich der "maximale Serverspeicher" auf 0 gesetzt wurde> und "am anderen Ende der Pipe ist kein Prozess"
-Fehler
0

Konnte das Abfrageeditorfenster in SSMS öffnen, nachdem SQL Server im Einzelbenutzermodus gestartet wurde. Siehe: https://www.sqlservercentral.com/forums/topic/unable-to-open-ssms-in-single-user-mode

Äon'
quelle
Die Verknüpfung mit der Quelle ist gut, aber bitte fügen Sie Ihrer Antwort mindestens die Zusammenfassung der vorgeschlagenen Lösung hinzu. Auf diese Weise bleibt die Antwort auch dann gültig, wenn der Link nicht mehr funktioniert.
Andriy M
-1

Ich hatte ein ähnliches Problem. Ich habe es geschafft, indem ich "SQL Server (MSSQLSERVER)" gestoppt und dann neu gestartet habe. Nach dem Neustart des Prozesses konnte ich ohne Probleme verbinden.

Neil
quelle