Nie można uruchomić wystąpienia SqlLocalDB na moim koncie Windows


12

Jestem administratorem i po prostu uruchom polecenie:

 sqllocaldb start v11.0

Wynik:

 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.

Dziennik przeglądarki zdarzeń Identyfikator zdarzenia: 528

Wywołanie interfejsu API systemu Windows WaitForMultipleObjects zwróciło kod błędu: 575. Komunikat o błędzie systemu Windows to: {Błąd aplikacji} Aplikacja nie mogła uruchomić się poprawnie (0x% lx). Kliknij przycisk OK, aby zamknąć aplikację. Zgłoszone w wierszu: 3621.

Próbowałem innego konta (użytkownika i administratora), nie było z nimi problemów.

Odinstalowałem i ponownie zainstalowałem wersję SQLLocalDB.msi 2012, ale nie miałem szczęścia. Czy masz jakiś pomysł i poprawkę?


Program Visual Studio miał problem z uruchomieniem mojego projektu i widziałem ten sam błąd w dzienniku zdarzeń. Naprawiono to przez uruchomienie sqllocaldb start v11.0.
Andre Luus,

Odpowiedzi:


12

Sprawdź dziennik błędów, który zwykle w folderze %localappdata%\Microsoft\Microsoft SQL Server Local DB\Instances\v11.0daje duże wskazówki.

Zaloguj się ponownie, jak na koncie administratora (nie administratora) i rozpocząć z wiersza polecenia . Następnie uruchom to:Run As Administrator

sqllocaldb share v11.0 MyInstance

Jeśli chcesz, możesz jawnie dodać konto Windows jako administrator systemu. Więc:

sqllocaldb start MyInstance

Następnie połącz się z SQLCMD, Management Studio, co masz i uruchom:

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

Teraz zaloguj się ponownie jako konto Windows i powinieneś być w stanie uruchomić to wystąpienie za pomocą:

sqllocaldb start MyInstance

(Może być już uruchomiony w zależności od Twojego O / S i sposobu zmiany konta.)

Następnie Domain\Usernamepowinno być możliwe połączenie za pomocą SQLCMD, SSMS itp (localdb)\.\MyInstance. Za pomocą .


1
Jest to dobre obejście, ale nie może wyjaśnić i rozwiązać problemu.
Nime Cloud,

1
@NimeCloud um, ok, może ktoś inny przyjdzie z lepszą „poprawką”. <shrug>
Aaron Bertrand

To zadziałało dla mnie. Było to związane z pierwotnym wystąpieniem, w którym określony użytkownik nie ma już żadnych dotacji i, co dziwne, nie może dać dostępu bez względu na to, co robisz. Udostępniona instancja została potraktowana jako osobna tożsamość, dlatego otrzymała „nowy” początek, w którym aplikacja może teraz łączyć się jak wcześniej.
Jon P

7

Wylogowałem się, a następnie zalogowałem jako inny administrator i zmieniłem nazwę folderu mojego profilu użytkownika. Włączyłem swoje konto w systemie Windows 7. W folderze profilu użytkownika jest nowo utworzony folder TEMP. Porównałem strukturę folderów przed i po, jak na zdjęciu. Plus; Instancja LocalDB została uruchomiona pomyślnie.

localdb2.png

Wylogowałem się i zmieniłem nazwę użytkownika na pierwotną. Zalogowałem się ponownie i wskoczyłem do tego folderu:

C: \ Users \ MYUSERNAME \ AppData \ Local \ Microsoft \ Microsoft SQL Server Local DB \ Instances \ v11.0

I widziałem dzienniki błędów; Brak dostępu!

http://pastebin.com/ASeJGqpw

Rozwiązanie: po prostu usuń wszystkie pliki z folderu v11.0 . Daj zapisu permision do V11.0 folderu. Jeśli nie możesz utworzyć innej instancji, udziel uprawnienia do zapisu w folderze Instancje .


1
Usunięto folder v11.0. Następnie wydano, sqllocaldb.exe c v11.0aby go odtworzyć (w wierszu polecenia programisty VS2013, podniesiony). To rozwiązało.
cheesus

2

Miałem ten problem, gdy moja instancja localdb i sql była instalowana z innym użytkownikiem niż bieżący (użytkownik domeny), więc naprawiłem to, usuwając folder V11.0 i wklejając pliki mdf i ldf ze starej ścieżki:

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

Mam nadzieję, że to pomoże.



1

Otworzyłem services.msc i ponownie uruchomiłem następujące usługi:

  • Przeglądarka serwerów Sql
  • Serwer SQL VSS Writer

Mam nadzieję, że to pomoże


1

Utwórz plik fix.bat, umieść w nim następujący tekst:

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

Uruchom fix.batjako administrator, a następnie uruchom ponownie komputer. Uruchom fix.batponownie.

Użyłem tej metody do rozwiązania tego problemu ponad 10 razy.


0

Zamieszczam to tutaj, ponieważ to pytanie jest obecnie wyższe w wynikach wyszukiwania Google niż inne. W moim przypadku nie można uruchomić LocalDB z IIS. Postępowałem zgodnie z sugestią tego SO, aby zmodyfikować C: \ Windows \ System32 \ inetsrv \ config \ applicationHost.config, aby dodać setProfileEnvironment = "true" do puli aplikacji, jak opisano w Korzystanie z LocalDB z pełnym IIS, Część 1: Profil użytkownika . Właściwie zmieniłem atrybut setProfileEnvironment dla applicationPoolDefaults processModel na true i działał on również, co może być lepsze, więc nie musisz pamiętać, aby robić to dla każdej nowej puli aplikacji.


0

Jeśli nie masz żadnych rzeczywistych informacji w wystąpieniu localdb, możesz po prostu je usunąć. Jest to dobry wybór, jeśli baza danych jest automatycznie inicjowana (przy użyciu EF DbInitializerlub migracji itp.).

Oto, co zrobiłem, aby rozwiązać problem:

  • Otwórz okno wiersza polecenia
  • Wykonaj sqllocaldb delete ****, gdzie ****jest puste dla domyślnej instancji (zwykle MSSqlLocalDblub kłopotliwej instancji
  • Wykonać sqllocaldb create ****
  • Wykonać sqllocaldb start ****

To działało dla mnie, ale rób to na własne ryzyko i upewnij się, że nie masz cennych danych w tej instancji, i upewnij się, że wykonujesz czynności w prawidłowej instancji.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.