Не удается запустить экземпляр 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.

Журнал просмотра событий ID события: 528

Вызов API Windows WaitForMultipleObjects возвратил код ошибки: 575. Системное сообщение об ошибке Windows: {Ошибка приложения} Приложению не удалось запуститься правильно (0x% lx). Нажмите кнопку ОК, чтобы закрыть приложение. Сообщено в строке: 3621.

Я пробовал другие (пользователь и администратор) учетные записи, с ними проблем не было.

Я удалил и переустановил 2012 версию SQLLocalDB.msi, но мне не повезло. У вас есть идея и исправить?


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 в качестве системного администратора в этом случае, если это является целью. Так:

sqllocaldb start MyInstance

Затем соединитесь с SQLCMD, Management Studio, что у вас есть, и запустите:

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

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

sqllocaldb start MyInstance

(Возможно, он уже запущен в зависимости от вашей операционной системы и того, как вы сменили аккаунт.)

Затем Domain\Usernameдолжно быть в состоянии подключиться с помощью SQLCMD, SSMS и т (localdb)\.\MyInstance. Д. С помощью .


1
Это хороший обходной путь, но он не может объяснить и решить проблему.
Облако

1
@NimeCloud Хм, хорошо, может быть, кто-то еще придет с лучшим "исправить". <пожимает плечами>
Аарон Бертран

Это сработало для меня. Это было связано с исходным экземпляром, где конкретный пользователь больше не имеет грантов, и странно, что он не может дать доступ, независимо от того, что вы делаете. Общий экземпляр был обработан как отдельная идентификация, таким образом, он получил «новое» начало, где приложение теперь может подключаться, как раньше.
Джон П

7

Я вышел из системы, а затем вошел в систему как другой администратор и переименовал имя папки моего профиля пользователя. Я переключился на свою учетную запись в Windows 7. В качестве папки моего профиля пользователя была создана папка TEMP. Я сравнил структуру папок до и после, как на картинке. Плюс; Экземпляр LocalDB успешно запущен.

localdb2.png

Я вышел из системы и переименовал свое имя пользователя в оригинал. Заново вошел и прыгнул в эту папку:

C: \ Users \ MYUSERNAME \ AppData \ Local \ Microsoft \ Microsoft SQL Server Локальная БД \ Instances \ v11.0

И увидел журналы ошибок; Доступ не разрешен!

http://pastebin.com/ASeJGqpw

Решение: просто удалите все файлы в папке v11.0 . Дайте записи permision в v11.0 папку. Если вы не можете создать другой экземпляр, дайте разрешение на запись в папку Instances .


1
Удалил папку v11.0. Затем выдается sqllocaldb.exe c v11.0воссоздать его (в командной строке разработчика VS2013, повышен). Это решило это.
cheesus говорит прекратить стрельбу модов

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: профиль пользователя . Я фактически изменил атрибут setProfileEnvironment для applicationModel в applicationPoolDefaults на true, и это сработало также, что может быть лучше, так что вам не нужно помнить, чтобы делать это для каждого нового пула приложений.


0

Если у вас нет реальной информации в экземпляре localdb, вы можете просто удалить ее. Это хороший выбор, если ваша база данных автоматически инициализируется (с использованием EF DbInitializerили миграций и т. Д.).

Вот что я сделал, чтобы решить эту проблему:

  • Откройте окно командной строки
  • Выполнить sqllocaldb delete ****, где ****либо пустым для экземпляра по умолчанию (обычно MSSqlLocalDbили проблемный экземпляр
  • казнить sqllocaldb create ****
  • казнить sqllocaldb start ****

Это сработало для меня, но делайте это на свой страх и риск, дважды проверьте, что в этом случае у вас нет ценных данных, и убедитесь, что вы выполняете действия на правильном экземпляре.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.