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

前言


在论坛里,经常看到有人在问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加端口.这个错误提示并不一定代表你使用的是命名管道。在看到错误提示的时候,还要深入分析下其他的可能性。

总结


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



如果您觉得阅读本文对您有帮助,请点一下“顶”按钮,您的“顶”将是我最大的写作动力!欢迎各位转载,但是未经作者本人同意,转载文章之后必须在文章页面明显位置给出作者和原文连接,否则保留追究法律责任的权利。
阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/z10843087/article/details/76602490
个人分类: 数据库连接
所属专栏: 人人都是DBA
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭