Die SqlLocalDB-Instanz kann nicht mit meinem Windows-Konto gestartet werden

11

Ich bin der Administrator und führe einfach den Befehl aus:

 sqllocaldb start v11.0

Ergebnis:

 Start of LocalDB instance "v11.0" failed because of the following error:
 Error occurred during LocalDB instance startup: SQL Server process failed to sta
 rt.

Ereignisanzeigeprotokoll Ereignis-ID: 528

Der Windows-API-Aufruf WaitForMultipleObjects hat den Fehlercode 575 zurückgegeben. Die Windows-Systemfehlermeldung lautet: {Anwendungsfehler} Die Anwendung konnte nicht korrekt gestartet werden (0x% lx). Klicken Sie auf OK, um die Anwendung zu schließen. Berichtet in Zeile: 3621.

Ich habe ein anderes Konto (Benutzer und Administrator) ausprobiert, es gab keine Probleme mit ihnen.

Ich habe die 2012-Version von SQLLocalDB.msi deinstalliert und neu installiert, aber ich hatte kein Glück. Haben Sie eine Idee und eine Lösung?

Nime Cloud
quelle
Visual Studio hatte Probleme beim Starten meines Projekts und ich sah den gleichen Fehler im Ereignisprotokoll. Es wurde durch Ausführen behoben sqllocaldb start v11.0.
Andre Luus

Antworten:

12

Überprüfen Sie das Fehlerprotokoll, das normalerweise unter dem Ordner %localappdata%\Microsoft\Microsoft SQL Server Local DB\Instances\v11.0wichtige Hinweise enthält.

Melden Sie sich wieder als das Administrator - Konto (nicht ein Administrator), und starten Sie eine Eingabeaufforderung mit Run As Administrator. Führen Sie dann Folgendes aus:

sqllocaldb share v11.0 MyInstance

Möglicherweise möchten Sie Ihr Windows-Konto in dieser Instanz explizit als Systemadministrator hinzufügen, wenn dies ein Ziel ist. So:

sqllocaldb start MyInstance

Stellen Sie dann eine Verbindung mit SQLCMD, Management Studio, her und führen Sie Folgendes aus:

CREATE LOGIN [Domain\Username] FROM WINDOWS;
EXEC sp_addsrvrolemember N'Domain\Username', N'sysadmin';

Melden Sie sich jetzt wieder als Ihr Windows-Konto an, und Sie sollten in der Lage sein, diese Instanz mit folgenden Funktionen zu starten:

sqllocaldb start MyInstance

(Abhängig von Ihrem Betriebssystem und der Art und Weise, wie Sie das Konto gewechselt haben, wird es möglicherweise bereits gestartet.)

Dann Domain\Usernamesollte in der Lage sein, eine Verbindung mit SQLCMD, SSMS usw. herzustellen (localdb)\.\MyInstance.

Aaron Bertrand
quelle
1
Dies ist eine gute Problemumgehung, kann das Problem jedoch nicht erklären und lösen.
Nime Cloud
1
@NimeCloud ähm, ok, vielleicht kommt jemand anderes mit einem besseren "Fix". <Achselzucken>
Aaron Bertrand
Das hat bei mir funktioniert. Es bezog sich auf die ursprüngliche Instanz, in der der bestimmte Benutzer keine Berechtigungen mehr hat und seltsamerweise keinen Zugriff mehr gewähren kann, egal was Sie tun. Die gemeinsam genutzte Instanz wurde als separate Identität behandelt, sodass sie einen "Neuanfang" erhielt, bei dem die App nun wie zuvor eine Verbindung herstellen kann.
Jon P
7

Ich habe mich abgemeldet und mich dann als anderer Administrator angemeldet und den Namen meines Benutzerprofilordners umbenannt. Ich habe in Windows 7 in mein Konto gewechselt. Es gibt einen neu erstellten TEMP-Ordner als Benutzerprofilordner. Ich habe vor und nach der Ordnerstruktur wie im Bild verglichen. Plus; Die LocalDB-Instanz wurde erfolgreich gestartet.

localdb2.png

Ich habe mich abgemeldet und meinen Benutzernamen in Original umbenannt. Erneut angemeldet und in diesen Ordner gesprungen:

C: \ Benutzer \ MYUSERNAME \ AppData \ Local \ Microsoft \ Lokale Datenbank von Microsoft SQL Server \ Instances \ v11.0

Und sah die Fehlerprotokolle; Zugriff verweigert!

http://pastebin.com/ASeJGqpw

Lösung: Löschen Sie einfach alle Dateien im Ordner v11.0 . Geben Sie dem Ordner v11.0 Schreibberechtigung . Wenn Sie keine weitere Instanz erstellen können, erteilen Sie dem Ordner Instances eine Schreibberechtigung .

Nime Cloud
quelle
1
Der Ordner v11.0 wurde gelöscht. sqllocaldb.exe c v11.0Wird dann ausgegeben , um es neu zu erstellen (in der VS2013-Entwicklerbefehlszeile erhöht). Dies löste es.
Cheesus sagt, hör auf, Mods am
2

Früher hatte ich dieses Problem, als meine localdb- und sql-Instanz mit einem anderen Benutzer als dem aktuellen (Domänenbenutzer) installiert wurde. Daher habe ich dieses Problem behoben, indem ich den Ordner V11.0 gelöscht und die Dateien mdf und ldf aus dem alten Pfad eingefügt habe:

C:\Users\{inseryouroldusernamehere}\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances\v11.0

Ich hoffe es hilft.

Jonathan Escobedo
quelle
1

Ich hatte dies einmal und ein einfacher Neustart löste es. Scheint es auch für andere Menschen gelöst zu haben . Vielleicht lohnt es sich, es zu versuchen, bevor Sie Nime & Aarons Antworten geben

Robert MacLean
quelle
1

Ich habe services.msc geöffnet und die folgenden Dienste neu gestartet:

  • SQL Server Browser
  • SQL Server VSS Writer

Ich hoffe es hilft

Christian Rodriguez
quelle
1

Erstellen Sie eine Datei fix.batund fügen Sie den folgenden Text ein:

net localgroup Administrators "%userdomain%\%username%" /add

net localgroup Users "%userdomain%\%username%" /add

sqllocaldb d test

rd /s/q "%localappdata%\Microsoft\Microsoft SQL Server LocalDB\Instances\test"

sqllocaldb c test -s

Führen Sie es fix.batals Administrator aus und starten Sie Ihren Computer neu. Führen Sie fix.baterneut aus.

Ich habe diese Methode verwendet, um dieses Problem über 10 Mal zu lösen.

user104430
quelle
0

Ich poste dies hier, da diese Frage derzeit in den Google-Suchergebnissen höher ist als bei anderen. In meinem Fall konnte LocalDB nicht über IIS gestartet werden. Ich folgte dem Vorschlag dieses SO-Kommentars , C: \ Windows \ System32 \ inetsrv \ config \ applicationHost.config zu ändern, um dem App-Pool setProfileEnvironment = "true" hinzuzufügen, wie unter Verwenden von LocalDB mit vollständigem IIS, Teil 1: Benutzerprofil beschrieben . Ich habe das setProfileEnvironment-Attribut processPodileEnvironment von applicationPoolDefaults in true geändert und es hat auch funktioniert, was möglicherweise besser ist, sodass Sie nicht daran denken müssen, dies für jeden neuen App-Pool zu tun.

csrowell
quelle
0

Wenn Sie keine echten Informationen in der localdb-Instanz haben, können Sie diese einfach löschen. Dies ist eine gute Wahl, wenn Ihre Datenbank automatisch initialisiert wird (mithilfe von EF DbInitializeroder Migrationen usw.).

Folgendes habe ich getan, um das Problem zu beheben:

  • Öffnen Sie ein Eingabeaufforderungsfenster
  • Ausführen sqllocaldb delete ****, wobei ****entweder für die Standardinstanz (normalerweise MSSqlLocalDboder für die problematische Instanz) leer ist
  • Ausführen sqllocaldb create ****
  • Ausführen sqllocaldb start ****

Dies hat bei mir funktioniert, aber tun Sie dies auf eigenes Risiko und stellen Sie sicher, dass Sie in dieser Instanz keine wertvollen Daten haben und dass Sie die Aktionen für die richtige Instanz ausführen.

Shimmy
quelle