之前编写了一个使用sqlserver2008的数据库处理差值的小软件,一直在用除了一些小bug之外,一直还用的不错。但是昨天晚上突然接到一个任务,使用软件的时候却出现了问题。
首先是软件报错说数据库连接失败,刚开始以为是前段时间搞检查,电脑关机杀毒软件升级什么的,让SQL server management studio彻底关闭了连不上了(小白操作)。打开ssms之后,使用Windows验证登录却出现了 provider: TCP 提供程序, error: 0 -由于目标计算机积极拒绝,无法连接。) (Microsoft SQL Server,错误: 10061)问题解决报错。百度之后,先是把所有的防火墙都关闭掉,结果依然显示同样报错。之后真不会到怎么回事就变成了请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。 (provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接)报错。
之后按照http://bbs.csdn.net/topics/390319794提供的方法,进行了设置,核心就是要打开SQLserver configuration manager把SQLEXPRESS2008的网络配置中的TCP/IP修改成为已启用,并且把VIA的改为已禁用,还要修改IP地址里的TCP端口,详细见上贴。
在修改过程中发现sqlserver配置管理器的第一项中sql server服务中的SQL server(SQLEXPRESS2008)状态显示为已停止,并且不能改为正在运行,并报错请求失败或服务未及时响应有关详细信息请参见事件日志或其他适用的日志。(在这里一度以为是SQL server express占用了SQL server express2008的端口)。
http://bbs.csdn.net/topics/390314708参考了该帖子。并在该帖中发现了查看window日志的方法详见帖子http://product.pconline.com.cn/itbk/software/win8/1211/3060037.html,查找到相关报错的跟SQL server相关的信息,查找到报错信息错误:Microsoft.ReportingServices.Diagnostics.Utilities.EvaluationCopyExpiredException:此 Microsoft SQL Server Reporting Services 实例的评估期已过。现在需要许可证。
百度相关问题并按照帖子https://jingyan.baidu.com/article/ff42efa906add5c19e220299.html进行了升级,最后成功解决问题。
最后总结就是 配置管理器很重要,会查看windows事件日志对于查找问题的关键原因(如果一开始就使用Windows事件日志查看,很快就会解决问题),然后对症下药十分有帮助。整个过程走下来总结三个解决打开SSMS时连接失败的三种通用方法:
1)防火墙允许通过
2)使用配置管理器修改相关项,包括配置管理器和网络配置里面的项(这是连接失败的集中出现问题的地方)
3)sqlserver升级