如何修复 MSSQLLocalDB?
Posted
技术标签:
【中文标题】如何修复 MSSQLLocalDB?【英文标题】:How to fix MSSQLLocalDB? 【发布时间】:2015-11-09 05:26:20 【问题描述】:在我的机器上 MSSQLLocalDB 已损坏:
PS C:\WINDOWS\system32> sqllocaldb i
MSSQLLocalDB
Projects
ProjectsV12
v11.0
PS C:\WINDOWS\system32> sqllocaldb i mssqllocaldb
The required LocalDB version "0.0" is not installed.
PS C:\WINDOWS\system32>
除了重新安装 Visual Studio / Sql Server / Sql Express 来修复它,我还能做些什么吗?
我应该提一下,任何依赖于 LocalDb 的 Visual Studio 功能都因此而无法工作,例如 CodeMaps
【问题讨论】:
【参考方案1】:如果您刚刚安装 LocalDB 并且尚未启动实例,则可能会发生这种情况。我不确定重新启动是否会为我重新启动它(我想它会重新启动),但以下工作不需要:
C:\Users\sweaver>sqllocaldb.exe s MSSQLLocalDB
LocalDB instance "MSSQLLocalDB" started.
这应该是您所需要的 - 但这是我在此过程中使用的完整诊断步骤。
这是在安装新版本的 LocalDB (2014) 之前
C:\Users\sweaver>sqllocaldb.exe i
v11.0
之后
C:\Users\sweaver>sqllocaldb.exe i
MSSQLLocalDB
v11.0
然后我立即收到此错误
C:\Users\sweaver>sqllocaldb.exe i MSSQLLocalDB
The required LocalDB version "0.0" is not installed.
奇怪!版本 11 怎么样 - 没关系
C:\Users\sweaver>sqllocaldb.exe i v11.0
Name: v11.0
Version: 11.0.5343.0
Shared name:
Owner: RR2014\sweaver
Auto-create: Yes
State: Running
Last start time: 3/10/2016 3:00:29 PM
Instance pipe name: np:\\.\pipe\LOCALDB#60C1AC49\tsql\query
这是版本
C:\Users\sweaver>sqllocaldb.exe v
Microsoft SQL Server 2012 (11.0.5343.0)
Microsoft SQL Server 2014 (12.0.2000.8)
让我们尝试启动它
C:\Users\sweaver>sqllocaldb.exe s MSSQLLocalDB
LocalDB instance "MSSQLLocalDB" started.
然后再试一次...
C:\Users\sweaver>sqllocaldb.exe i MSSQLLocalDB
Name: MSSQLLocalDB
Version: 12.0.2000.8
Shared name:
Owner: RR2014\sweaver
Auto-create: Yes
State: Running
Last start time: 3/10/2016 3:10:55 PM
Instance pipe name: np:\\.\pipe\LOCALDB#1D3F49F3\tsql\query
呸!这很容易!
【讨论】:
【参考方案2】:我最终做的事情如下。请注意,我确信这不是正确的方法,而是一种混乱的黑客行为。不过,它让我的 CodeMaps 再次工作,所以我很高兴。
我删除了mssqllocaldb
sqllocaldb d mssqllocaldb
系统不让我重新创建,所以我创建了另一个:
sqllocaldb с mssqllocaldb1
我去了"C:\Users\[username]\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances\"
并备份了MSSQLLocalDB
文件夹。然后我将MSSQLLocalDB1
文件夹复制到MSSQLLocalDB
。
在注册表中,我在HKCU\Software\Microsoft\Microsoft SQL Server\UserInstances\
下找到了新实例,并更改了DataDirectory
值以反映新路径,即以MSSQLLocalDB
结尾而不是MSSQLLocalDB1
。
之后我能够成功启动MSSQLLocalDB
并且 CodeMaps 工作:
PS C:\WINDOWS\system32> sqllocaldb s mssqllocaldb
LocalDB 实例“MSSQLLocalDB”已启动。
【讨论】:
【参考方案3】:我通过删除文件夹和注册密钥解决了这个问题。然后是安装。
删除文件夹
C:\Users\用户名\AppData\Local\Microsoft\Microsoft SQL Server 本地 DB\Instances\MSSQLLocalDB
删除具有 MSSQLLocalDB 之类的注册表项 HKEY_CURRENT_USER\SOFTWARE\Microsoft\Microsoft SQL Server\UserInstancesB0A12082-AC5B-4E05-A0C9-ABFB6816EE16
从 cmd 运行
C:>sqllocaldb c MSSQLLocalDB
使用版本 13.0.2151.0 创建的 LocalDB 实例“MSSQLLocalDB”。
【讨论】:
【参考方案4】:我刚刚将HKEY_CURRENT_USER\Software\Microsoft\Microsoft SQL Server\UserInstances\
下的注册表项GUID 更新为ParentInstance
的正确值,这对我有用。通常,当您升级到更高版本时会发生这种情况。我必须将 ParentInstance 值从 MSSQL12E.LOCALDB
更改为 MSSQL13E.LOCALDB
【讨论】:
以上是关于如何修复 MSSQLLocalDB?的主要内容,如果未能解决你的问题,请参考以下文章
LocalDB SQL Server 2014 Express 创建 2 个实例 (localdb)\ProjectsV12 & (localdb)\MSSQLLocalDB?
LocalDB SQL Server 2014 Express 创建 2 个实例 (localdb)\ProjectsV12 & (localdb)\MSSQLLocalDB?
MSSQLLocalDB 微软本地数据库,pk SQLlite