Неможливо запустити екземпляр SqlLocalDB із мого облікового запису Windows


12

Я адміністратор і просто запускаю команду:

 sqllocaldb start v11.0

Результат:

 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.

Журнал перегляду подій Ідентифікатор події: 528

Виклик API Windows WaitForMultipleObjects повернув код помилки: 575. Повідомлення про системну помилку Windows: {Помилка програми} Програму не вдалося запустити коректно (0x% lx). Клацніть OK, щоб закрити програму. Повідомлено за рядком: 3621.

Я спробував інші (користувач та адміністратор) акаунти, проблем із ними не було.

Я видалив і перевстановив версію SQLLocalDB.msi 2012 року, але мені не пощастило. У вас є ідеї та виправлення?


У Visual Studio виникли проблеми із запуском проекту, і я побачив ту саму помилку в журналі подій. Виправлено це запуском sqllocaldb start v11.0.
Андре Луус

Відповіді:


12

Перевірте журнал помилок, який зазвичай в папці %localappdata%\Microsoft\Microsoft SQL Server Local DB\Instances\v11.0дасть вам великі підказки.

Вхід в систему під ім'ям з обліковим записом адміністратора (НЕ адміністратора), і запустити командний рядок з . Потім запустіть це:Run As Administrator

sqllocaldb share v11.0 MyInstance

У цьому випадку ви, можливо, захочете явно додати свій обліковий запис Windows як sysadmin, якщо це є метою. Тому:

sqllocaldb start MyInstance

Потім підключіться до SQLCMD, студії управління, що у вас є, і запустіть:

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

Тепер увійдіть назад як свій обліковий запис Windows, і ви повинні мати можливість запустити цей примірник, використовуючи:

sqllocaldb start MyInstance

(Можливо, це вже буде запущено залежно від вашого O / S та способу переключення рахунків.)

Тоді Domain\Usernameслід мати можливість підключення за допомогою SQLCMD, SSMS тощо (localdb)\.\MyInstance.


1
Це вдале вирішення, але воно не може пояснити та вирішити проблему.
Хмара Німе

1
@NimeCloud гм, добре, можливо, хтось інший прийде разом з кращим "виправленням". <shrug>
Аарон Бертран

Це працювало для мене. Це було пов'язано з оригінальним екземпляром, коли конкретний користувач більше не має грантів, і дивно, він не може надати доступ незалежно від того, що ви робите. Спільний екземпляр розглядався як окрема ідентичність, тому він отримав "свіжий" початок, коли додаток тепер може з'єднуватися, як і раніше.
Джон P

7

Я вийшов із системи, а потім увійшов як інший адміністратор і перейменував ім’я папки мого профілю користувача. Я перейшов у свій обліковий запис у Windows 7. У новому створеному папці TEMP є папка мого профілю користувача. Я порівнював структуру папок до і після, як на малюнку. Плюс; Екземпляр LocalDB запустився успішно.

localdb2.png

Я вийшов із системи та перейменував своє ім'я користувача на оригінальне. Знову ввійшов у систему і перейшов у цю папку:

C: \ Користувачі \ MYUSERNAME \ AppData \ Local \ Microsoft \ Microsoft SQL Server Local DB \ інстанції \ v11.0

І побачив журнали помилок; У доступі відмовлено!

http://pastebin.com/ASeJGqpw

Рішення: Просто видаліть усі файли в папці v11.0 . Надати дозвіл на запис у папку v11.0 . Якщо ви не можете створити інший екземпляр, надайте дозвіл на запис в папку " Екземпляри" .


1
Видалено папку v11.0. Потім видається sqllocaldb.exe c v11.0для його відтворення (у командному рядку розробника VS2013, підвищеному). Це вирішило це.
сир

2

У мене була ця проблема, коли мій екземпляр localdb і sql був встановлений з іншим користувачем, ніж поточний (користувач домену), тому я виправив це, очистивши папку V11.0 і вставивши файли mdf та ldf зі старого шляху:

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

Сподіваюся, це допомагає.




1

Створіть файл fix.bat, помістіть у нього такий текст:

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

Запустіть fix.batяк адміністратор, а потім перезавантажте комп'ютер. Біжи fix.batзнову.

Я використовував цей метод для вирішення цієї проблеми понад 10 разів.


0

Я публікую це тут, оскільки це питання наразі вище в результатах пошуку Google, ніж інші. У моєму випадку LocalDB не вдалося запустити з IIS. Я дотримувався пропозиції цього коментаря SO щодо зміни C: \ Windows \ System32 \ inetsrv \ config \ applicationHost.config, щоб додати setProfileEnvironment = "true" в пул додатків, як описано в Використання LocalDB з Повними IIS, Частина 1: Профіль користувача . Я насправді змінив атрибут applicationPoolDefaultsMoel's setProfileEnvironment на true на справжній, і він працював так само добре, що може бути краще, тому вам не потрібно пам'ятати про це для кожного нового пулу додатків.


0

Якщо у вас немає жодної реальної інформації в екземплярі localdb, ви можете просто її видалити. Це хороший вибір, якщо ваша база даних буде ініціалізована автоматично (за допомогою EF DbInitializerабо міграції тощо).

Ось що я зробив, щоб вирішити проблему:

  • Відкрийте вікно командного рядка
  • Виконати sqllocaldb delete ****, де ****для екземпляра за замовчуванням або порожній (як правило, MSSqlLocalDbабо проблемний екземпляр)
  • Виконати sqllocaldb create ****
  • Виконати sqllocaldb start ****

Це працювало для мене, але робіть це на свій страх і ризик і переконайтесь, що двічі перевіряєте, чи немає в цьому екземплярі цінних даних, і переконайтеся, що ви виконуєте дії над правильним екземпляром.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.