使用VS2017开发,数据库使用VS自带的sql server。在开发环境都正常运行,但Release后在别的机器都不好用,连接不上数据库,win10或者win7都不好用。
于是在不好用 的机器安装VS2017调试,发现数据库连接时,提示The database .mdf cannot be opened because it is version 852.This server supports version 782 and earlier.A downgrade path is not supported.如下图。
比较奇怪就是,新装的VS2017,数据库支持还不是最新的?
在网上查了下,sqlserver2014对应782,sqlserver2016对应852.
也查到可以安装sqlserver软件来进行兼容性设置,高版本兼容低版本。
于是尝试安装了sqlserver软件来设置mdf数据库文件的兼容性,但是尝试了各种兼容性都不好用。
于是开始尝试卸载sqlserver,想卸载全部版本后再安装需要的852版本。卸载后再次尝试连接数据库,发现错误已经不再是不支持852版本了,变成了cannot find server。
这时尝试了再次安装vs2017的相关组件,包括sqlserver2016的支持等多个组件。
但再尝试连接数据库,还是一直是cannot find server。查看了windows的应用程序事件日志,也一直是无法找到实例。
后面看到网上有提到用命令行查询,删除及创建实例的方法。尝试查询和重建实例一直失败。
正常访问的数据库实例如下图。
后来灵机一动,找到了实例目录,手动删除了实例,再新建实例就成功了,数据库立刻访问正常了。(感叹windows的数据库真是神坑啊)
Tips : 建议查看windows应用程序事件日志,查看错误原因(很有助于发现错误原因)
1.手动删除路径下实例
C:\Users\GJSH\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances
或者命令行删除实例
sqllocaldb delete mssqllocaldb
2.命令行创建新实例
sqllocaldb create mssqllocaldb
祝各位顺利避坑~