不会你打我系列--轻松解决数据库无法连接

前言


在论坛里,经常看到有人在问SQL SERVER 数据库无法连接的问题,
通过观察发现,无法连接数据库,出现频率最高的错误是:

不会你打我系列--轻松解决数据库无法连接

在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。 (provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接)
其实解决这个问题的思路还是比较固定的,今天就针对这个错误,如何排查做一个详细的说明,让下次有任何人遇到这个问题时,可以马上就能自己解决.通过最近今天反馈发现很多人在看了这个文章还是说不能解决问题、所以对文章再次做了写修改。如何下次还有人看了文章还是无法解决问题,还原在下面留言,我将会持续修正。

解决


首先,客户端访问数据库的概念结构大概如下:
不会你打我系列--轻松解决数据库无法连接
不会你打我系列--轻松解决数据库无法连接


我们把连接分为2种情况,本地连接和远程连接
本地连接:是在DB 服务器上面去访问数据库
远程连接:客户端通过远程访问数据库

首先保证本地连接可以正常访问数据库


建议:使用IP加端口的方式,即192.168.1.102,1433的方式访问数据库。如果之前不是这种方式先改成这个种方式,排除出问题再说
这里的IP是DB 数据库服务器的IP和端口。
如果不知道数据库服务器的ip, 可以进入服务器CMD,输入IPCONFIG查看


1.在尝试连接之前,先查看TCP/IP 协议是否启用,数据库端口

a. TCPIP 已启用
b.默认端口都是1433 且是真的IPALL 所有IP 开放1433
不会你打我系列--轻松解决数据库无法连接


不会你打我系列--轻松解决数据库无法连接

2.检查SQL SERVER 服务

打开配置管理器,查看状态,是否正在运行
不会你打我系列--轻松解决数据库无法连接
不会你打我系列--轻松解决数据库无法连接

3.数据库服务器本地连接数据库


使用如下图方式,是能否成功
不会你打我系列--轻松解决数据库无法连接
不会你打我系列--轻松解决数据库无法连接
如果本地访问可以成功。说明前面的选项都是没问题。如果不成功,就在检查下前面的几个检查下。

通过远程访问数据库

1.检查客户端与DB服务器端口是否通

从客户端机器 telnet 数据库服务器对应的端口
例如我的服务器IP 192.168.1.102 端口1433 就运行 telnet 192.168.1.102 1433
如果没有安装Telnet 会提示下面的错误
不会你打我系列--轻松解决数据库无法连接
不会你打我系列--轻松解决数据库无法连接
安装下telnet ,几分钟就搞定
不会你打我系列--轻松解决数据库无法连接
如果Telnet不通,那么连接SQL SERVER 肯定会提示,无法连接的错误。
不会你打我系列--轻松解决数据库无法连接
不会你打我系列--轻松解决数据库无法连接
这时候我们就需要检查
客户端的防火墙
数据库服务器的防火墙
交换机的策略
云主机特殊的策略

2.检查数据库设置

查看是否允许远程连接到此服务器
不会你打我系列--轻松解决数据库无法连接
不会你打我系列--轻松解决数据库无法连接

补充

在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。 (provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接)

错误提示里面会看到:provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接

有时候我们明明用ip加端口连接,为什么提示的仍然是命名管道提供程序。因为sql server 找不到对应的端口,或者无法把你输入的计算机名转换为正确的IP加端口.这个错误提示并不一定代表你使用的是命名管道。在看到错误提示的时候,还要深入分析下其他的可能性。

总结


通过上面步骤依次排除,肯定可以解决



如果您觉得阅读本文对您有帮助,请点一下“顶”按钮,您的“顶”将是我最大的写作动力!欢迎各位转载,但是未经作者本人同意,转载文章之后必须在文章页面明显位置给出作者和原文连接,否则保留追究法律责任的权利。