客户端数据源连接服务器的数据库总连接失败,请问怎样解决?
一般说来,有以下几种可能性:
1,SQL Server名称或IP地址拼写有误
2,服务器端网络配置有误
3,客户端网络配置有误
要解决这个问题,我们一般要遵循以下的步骤来一步步找出导致错误的原因
============= 首先,确保你的SQL Server已打了SP4的补丁,然后检查网络物理连接:
ping 服务器IP地址;ping 服务器名称
使用telnet命令检查SQLServer服务器工作状态
telnet <服务器IP地址> 1433
如果命令执行成功,可以看到屏幕一闪之后光标在左上角不停闪动,这说明SQL Server 服务器工作正常,并且正在监听1433端口的 TCP/IP 连接
如果命令返回"无法打开连接"的错误信息,则说明服务器端没有启动 SQL Server 服务或者服务器端没有在默认的端口1433上监听
=============接着,我们要到服务器上检查服务器端的网络配置,检查是否启用了命名管道是否启用了 TCP/IP 协议等等。
可以利用SQL Server 自带的服务器网络使用工具来进行检查
点击:程序 -- Microsoft SQL Server -- 服务器网络使用工具
打开该工具后,在"常规"中可以看到服务器启用了哪些协议
一般而言,我们启用命名管道以及 TCP/IP 协议
点中 TCP/IP 协议,选择"属性",我们可以来检查 SQK Server 服务默认端口的设置
一般而言,我们使用 SQL Server 默认的1433端口如果选中"隐藏服务器",则意味着客户端无法通过枚举服务器来看到这台服务器,起到了保护的作用,但不影响连接
============= 接下来我们要到客户端检查客户端的网络配置 =============
我们同样可以利用 SQL Server 自带的客户端网络使用工具来进行检查,
所不同的是这次是在客户端来运行这个工具
点击:程序 -- Microsoft SQL Server -- 客户端网络使用工具
打开该工具后,在"常规"项中,可以看到客户端启用了哪些协议
一般而言,我们同样需要启用命名管道以及 TCP/IP 协议
点击 TCP/IP 协议,选择"属性",可以检查客户端默认连接端口的设置,该端口必须与服务器一致
解决办法参考(网上)
一:
我觉得可能是楼主的某些程序写的有问题,可能占用了连接而没有断开。另外,楼主的MYSQL服务器是不是安装有防火墙?特别是诺顿防火墙,我遇到过,明明是允许我的IP访问被保护的服务器,可是一段时间后,挪顿就认为我的IP是非法攻击,自动就给我IP封了,要么等20分钟(默认的规则),要么从新启动服务器就好了。。。。。。。
电脑常识
二:
您使用的是Windows操作系统,此错误与一个注册表键值TcpTimedWaitDelay有关。减小Windows中TcpTimedWaitDelay时间可解决此类问题,默认情况下为240(未设置的情况下也是这个数值)。 此项设置需要到注册表如下位置进行设置:HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParametersTcpTimedWaitDelay
如果注册表中没有TcpTimedWaitDelay这个项目,请增加这个项目,并设置为双字节(DWORD)类型。数值设置为30 ~ 60 之间即可。
数据仓库
三:
服务器ftp测试完毕,重新启动了一下。就一切稳定了。 不过仍然有几个问题没有搞清楚。心里不放心。
1。上周五的时候,ftp压力并不大的时候,30分钟在线统计900多人的时候,10%的比率出现mysql连接失败的10048错误。
2。我当时使用的连接方法是 mysql_connect()。服务器iis+php+isapi的方式。参考了一些资料以后,我当时马上把 mysql_connect() 方法都改成了 mysql_pconnect() 方法,当时,问题看上去是解决了。
3。周六,服务器开始ftp压力测试。15%的比率出现 mysql连接失败的 10048 10055 错误。比上次多了个10055错误。
关键不知道10048 10055错误代码具体代表的错误信息。应该说,问题仍然没有找到确切的答案。
人工智能
我开了serv-u,有4个socket连接,mysql马上挂了 数据挖掘研究院
1 确保服务器端的数据库中存在sa,并支持混合登录模式默认安装的时候,可能会忽略建立sa
2 确保服务器端的数据库是支持远程调用的打开SQL Server Management Studio,选择该数据库,右键菜单"Properties",在打开的对话框中选择Connections,把Allow remote connections to this server选上
3 确保服务器端的SQL服务的TCP/IP是Enable的打开SQL Server Configuration Manager 选择SQL Server 2005 Network Configuration下的Protocols for SQL2005( 我安装的SQL示例名为SQL2005), 把Named Pipes和TCP/IP都修改为Enabled,默认是Disabled
4 确保服务器端的SQL实例的远程调用是支持TIP/IP和named pipes的 打开SQL Server Surface Area Configuration Manager,在打开的页面中选择Surface Area Configuration for Services and Connections选中实例的Remote Connections,把Using both TCP/IP and named pipes选中
5 重启服务器端的SQL Server 2005服务,确保SQL Server Agent和SQL Server Browser的服务也启动了 默认都是需要手动启动,可以改成Automatic
6 因为服务器端的操作系统是WinXp+SP2,所以还需要检查防火墙确保防火墙中的1433端口打开了
另外, SQL Server 2005的默认端口可能不是1433 我们需要手动修改一下 打开SQL Server Configuration Manager 选择SQL Server 2005 Network Configuration下的Protocols for SQL2005( 我安装的SQL示例名为SQL2005), 查看TCP/IP的属性在打开的对话框中选择IP Address, 把到IPAll下的TCP Dymanic Ports改为0,TCP Port的值修改为1433
在Windows防火墙中的Exceptions中Add Port:TCP 1433和UDP 1434, 同时还需要Add Program先打开SQL Server Configuration Manager,在SQL Server 2005 Services中选中SQL Server,查看属性,在Advanced中记下Instance ID如(MSSQL1)
在防火墙的Exceptions中Add Program,找到诸如\Microsoft SQL Server\MSSQL1\MSSQL\Binn\sqlservrexe,添加
所有这些都做完了,客户端应该就可以访问了,最好客户端也在自己的Configration Manager的Client Configuration中设置TCP/IP为Enabled
0条评论