[08001] [Microsoft] [SQL Server Native Client 11.0] 命名管道提供程序:无法打开与SQL Server的连接
[08001] [Microsoft] [SQL Server Native Client 11.0] 命名管道提供程序:无法打开与SQL Server的连接
提出问题#
你是否遇到过以下的问题呢?使用Navicat等第三数据库管理工具连接SQL Server时出现如下图的错误:
燃鹅,用MSSM连接却可以连接,从后面我们知道,第三方数据库管理软件一般通过TCP/IP来连接管理的。而MSSM就是采用的Shared Memory来进行连接管理的,因此不走TCP/IP这条道,那么就可以连接并进行管理。
在配置中,从客户端协议顺序来看,可以得知。
说了那么多,那么怎么解决呢?#
-
保证所有SQL Server相关服务处于运行状态。 当然,如果你使用MSSM可以连接管理的话,我想你相关服务应该是没问题的。
-
打开SQL Server配置管理器,展开 SQL Server 网络配置 - xxxx 的协议(注:xxxx 为你SQL Server名称),在右侧协议列表中,双击打开 TCP/IP属性, 首先保证状态为 是。 在IP地址选项卡一栏,下拉到最后一项设置,名为 IPALL,此表示所有本地IP地址的统一设置。此时,在 TCP动态端口 填入 1433 (注:SQL Server 默认端口是 1433 ,当然你可以指定其它合法不被占用端口也行,不过连接时需要指定端口,因此不建议修改成其它端口号)
- 修改完成后,点击确定,会提示重启所有相关SQL Server服务生效,那么就重启所有SQL Server服务吧。
-
怎么样?此时用Navicat等第三方工具连接SQL Server是不是成功了呢。
如果还不行呢?#
如果还不能进行连接管理的话。。。好吧,其实我这样设置后,我也是登录不进去,不管是用Windows身份验证登录还是使用SQL Server身份验证都不行。那我怎么解决呢?请看:
- 在 服务器属性 - 安全性选择页,右侧 服务器身份验证 下,虽然 我之前使用的就是 SQL Server 和 Windows身份验证模式,不过也之前也用 MSSM 管理工具分别使用了两个身份验证模式是可以的,但是用第三方工具就是不可以。因此,在此处我将服务器身份验证修改成Windows身份验证模式,重启相关SQL Server服务,然后再使用Navicat第三方管理工具连接并使用Windows身份验证模式进行登录,发现竟然可以连接成功了!
- 然后我又切换回SQL Server和Windows身份验证模式,重启相关SQL Server服务后,再使用Navicat第三方管理工具连接并使用SQL Server身份验证模式进行登录,也同样成功连接了。
- 因此,就搞定了啦!
附录#
下面是一个关于JBDC访问SQL Server数据库的小摸索,比如当我使用SQL Server身份验证模式访问新建的数据库stu时,出现了以下错误:
同样的,我使用Windows身份验证模式登录访问这个stu表时,却是可以正常访问的。
那么问题在哪呢?
好吧,我记起来了,我新建stu这张表是以Windows身份验证模式登录的,所以现在我以SQL Server身份验证登录并对其进行访问是行不通的,也是合情合理的。
如果要解决这个问题呢,那就找到相关数据库(即stu数据库),右键 - 属性,在数据库属性 - 权限 ** 选项卡下,对用户或角色为 public 的这个角色进行相关权限的授予**。
完成后,确定修改。再次访问时,就可以访问啦。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!