LocalDB 从2017更换到2014后一直显示连接不正确解决方案
问题描述:LocalDB 版本混装后出现默认实例创建不成功
无法连接到 (LocalDB)\MSSQLLocalDB。
------------------------------
其他信息:
在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。
(provider: SQL Network Interfaces, error: 50 - 发生了 Local Database Runtime 错误。无法创建自动实例。有关错误详细信息,请参阅 Windows 应用程序事件日志。
) (Microsoft SQL Server,错误: -1983577832)
有关帮助信息,请单击: http://go.microsoft.com/fwlink?ProdName=Microsoft%20SQL%20Server&EvtSrc=MSSQLServer&EvtID=-1983577832&LinkId=20476
因为LocalDB 2017 为 MSSQL14E.LOCALDB
LocalDB 2014 为 MSSQL13E.LOCALDB
所以日志中报错信息为:
LocalDB parent instance version is invalid: MSSQL13E.LOCALDB 或者 LocalDB 父实例版本无效: MSSQL14E.LOCALDB
1、查看异常原因
2、查看应用程序事件
显示:
LocalDB parent instance version is invalid: MSSQL13E.LOCALDB
解决方案:删除注册表中对应的UserInstances 的值
3、删除注册表键值后,手动创建默认实例(关键步骤)
在cmd 中输入 > sqllocaldb create MSSQLLocalDB
如果创建失败:检查磁盘上是否存在相关实例
C:\Users\xxx\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances
相当于初始化数据库成功
以上操作后就能正常使用了。
总结:出现问题的根本原因是安装LocalDB 的时候会生成一个默认实例,而卸载的时候不会将默认实例相关文件删除,所以安装其它版本的LocalDB 时如果默认实例名一样就会创建失败,而LocalDB 2014 和LocalDB 2017 对应注册表中的值 分别为 MSSQL13E.LOCALDB 和 MSSQL14E.LOCALDB,所以就会提示以上的错误