无法使用我的Windows帐户启动SqlLocalDB实例


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

Windows API调用WaitForMultipleObjects返回了错误代码:575。Windows系统错误消息是:{Application Error}应用程序无法正确启动(0x%lx)。单击“确定”关闭该应用程序。报告在线:3621。

我尝试了另一个(用户和管理员)帐户,它们没有问题。

我卸载并重新安装了SQLLocalDB.msi 2012版本,但没有运气。您有任何想法和解决方法吗?


Visual Studio无法启动我的项目,并且在事件日志中看到了相同的错误。通过运行修复它sqllocaldb start v11.0
Andre Luus 2013年

Answers:


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,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
这是一个很好的解决方法,但无法解释和解决问题。
Nime Cloud

1
@NimeCloud嗯,好的,也许其他人会带来更好的“修复”。<耸肩>
亚伦·伯特兰

这对我有用。它与原始实例有关,在该实例中,特定用户不再有任何授予,而且奇怪的是,无论您做什么,它都无法授予访问权限。共享实例被视为单独的身份,因此为它提供了一个“全新”的开始,该应用现在可以像以前一样连接。
乔恩·P

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文件夹中的所有文件。给写permision11.0文件夹中。如果您无法创建另一个实例,则向Instances文件夹授予写权限。


1
删除了v11.0文件夹。然后发出sqllocaldb.exe c v11.0以重新创建它(在VS2013开发人员命令行中提升)。这解决了。
cheesus说停止射击mods'Apr

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部分:用户配置文件中所述。我实际上将applicationPoolDefaults的processModel的setProfileEnvironment属性更改为true,它也可以很好地工作,这可能更好,因此您不必记住为每个新的App Pool都这样做。


0

如果您在localdb实例中没有任何实际信息,则可以将其删除。如果数据库是自动初始化的(使用EF DbInitializer或迁移等),这是一个不错的选择。

这是我为解决此问题所做的事情:

  • 打开命令提示符窗口
  • Execute sqllocaldb delete ****,其中****默认实例(通常MSSqlLocalDb是麻烦的实例)为空白
  • 执行 sqllocaldb create ****
  • 执行 sqllocaldb start ****

这对我有用,但后果自负,并确保再次检查您在该实例中没有有价值的数据,并确保对正确的实例执行操作。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.