谈JDBC SQL SERVER 不能连接的问题

上一篇 / 下一篇  2009-04-27 00:06:55

小技巧:查看端口。可在cmd里输入netstat -an 命令!
今天,用MyEclipse连接SQL Server2000就是配置出错!错误为Errorestablishing socket错误!
  首先,需要下载SQL_Serve20000的sp3补丁,下载安装后会发现1433端口已经打开了,再执行程序。但我没有下载SQL_Serve20000的sp3补丁,而是下载了SQL_Serve20000的sp4补丁,顺便再下载了SQLServer 2000 Driver for JDBC Service Pack 3 http://download.microsoft.com/download/4/1/d/41d3e9c0-64d1-451e-947b-7a4cba273b2d/setup.exe ,在下载先安装SQLServer 2000 Driver for JDBC Service Pack 3,再安装SQL_Serve20000的sp4补丁!就OK啦!
原因是与socket建立连接错误
可能是没启动SQLServer2000服务器
你要连接的数据库的服务器没有启动

或者是需要SQLServer2000升级包,可以肯定出现这个错误很大概率是没有安装SQLServer升级包

由于微软公司关于一个安全性问题的考虑,让个人版的sqlserver 不监听1433端口.故在通过驱动连接数据库的时候会出现该Errorestablishing socket错误,所以如果通过jdbc连接sqlserver 就必须给数据库打补丁,补丁包下下来是exe文件,执行它,随便选个文件夹运行,然后再打开该文件夹,执行里面的setup.bat,这样你的数据库就打上了补丁了,并且1433端口就监听了,然后你在执行你的连接文件,就可以了(第一次的exe是解压,解压完再执行setup.bat才是安装)
有的时候还会出现一个问题说是什么sa用户没有建立可信任的连接,好象是这么个意思我记得不是很清楚了,这是因为你安装数据库的时候选用的是windows验证,应该选用混合模式,你打开企业管理器,选操作,点属性,在安全性中选择sqlserver 和windows这个选项,点确定,然后重启sqlserver和你的web服务器,在运行你的连接文件应该就可以了,
   就解决啦!
错误提示如标题所示。看来很可能是驱动程序出错了导致连接不上数据库,因此我检查是否启动数据库服务器,服务器已经启动,看来是我用的jdbc的驱动出错了。驱动程序出错总是一件很麻烦的事情。为了保险起见我还是编写了一个用jdbcodbc驱动的小程序来链接数据库,结果是运行正常的。看来是jdbc forsqlserver2000出错了。这时我想起实验室的一位仁兄用我的机器在另外一个帐号下面又安装了一个sqlserver2000的实例很可能那就是原因的所在,新装的实例使我以前对sqlserver2000进行sp4的升级失效导致驱动程序也不能用(jdbc的驱动程序要求sqlserver2000版本要sp3以上)。于是我重新对sqlserver升级到sp4问题解决了。
下面是我在网上找到的一些相同现象的解决方法:问题现象虽然相同但是原因可能不同方法也各异。
MS SQL2000 (Errorestablishing socket)错误的解决办法-SQL请选用混和安装模式
作者:YuLimin
*Error: get DB connectionerror. Ex. msg: java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Errorestablishing socket.
server java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Errorestablishing socket.
            at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)
            at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
            at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
---------------------------------------------------------------
无法建立数据库连接,
确定网络没有问题
SQL有开着,
SQL打到SP3的补丁
  SQLServer2000 SP4要注意,解压之后看到setup.bat这个文件,打开这个文件就开始安装SP4补丁。记得安装后,SQL服务器是停止了,需要重新启动!安装之后,启动SQL服务器,打开查询分析器,输入select @@version,按F5执行,如果出现MicrosoftSQLServer 2000 - 8.00.2039 (Intel X86)   May 3 2005 23:18:38   Copyright (c) 1988-2003 Microsoft Corporation Personal Edition on Windows NT 5.1 (Build 2600: Service Pack 2)则说明SQLServer2000的补丁SP4安装成功
驱动也要对应SP3的. 
---------------------------------------------------------------
1、下载MicrosoftSQLServer 2000 Service Pack 3a并安装,SQL请选用混和安装模式!!!
http://www.microsoft.com/downloads/details.aspx?FamilyId=90DCD52C-0488-4E46-AFBF-ACACE5369FA3&displaylang=zh-cn  
2、下载SQLServer 2000 Driver for JDBC Service Pack 3
http://www.microsoft.com/downloads/details.aspx?FamilyId=07287B11-0502-461A-B138-2AA54BFDC03A&displaylang=en 
3、运行时关闭防火墙
我的操作系统是XP,前几天升级到sp2,发现jdbc连接不了sqlserver,报错不能连接,后来我下载了sqlserver sp3,安装的时候总是提示sa密码不正确,后来我登陆微软网站,找到关于sqlserver sp3的帮助文档,发现原来我电脑中的用户环境变量没有设置TEMP和TMP,设置后,update sqlserver sp3成功,然后jdbc连接也正常。
    希望这文章对一些同道中人有所帮助。
JDBC SQLSERVER"Errorestablishing socket"
jdbc配置语句为: jdbc:microsoft:sqlserver://server_name:1433
如运行程序时出现 "Errorestablishing socket" 错误,则应进行如下调试:

1 检查SQLSERVER 是否允许远程访问.具体步骤:
1)打开"企业管理器",打开控制台根目录>SQLServer 组>数据库
2)在相应"数据库"上单击右键,选择"属性"
3)选择"连接"选项卡,检查"远程服务器连接"下,RPC服务是否选择.
2 使用telnet IP地址 1433,系统是否提示连接出错,如系统提示出错
检查是否防火墙屏蔽了SQLSERVER 或 java IDE 的网络访问端口
如果是,关闭防火墙,重新启动SQLSERVER和java IDE,进行测试,
如果系统仍提示上述错误,尝试下列步骤
3 检查SQLSERVER 端口号及是否启用了TCP/IP协议,具体步骤:
1)打开"企业管理器",打开控制台根目录>SQLServer 组>数据库
2)在相应"数据库"上单击右键,选择"属性"
3)选择"常规"选项卡,点击"网络配置",如启用的协议中无"TCP/IP协议"将其加入
4)选择"TCP/IP协议",点击"属性",检查其端口号是否为1433
5)如端口号为1433将其修改为其它端口号,修改jdbc连接语句,将端口号同样改为新启用的端口号,如jdbc:microsoft:sqlserver://server_name:1400(假设新端口号为 1400)

以下的方法你每种的去试试:
#检查一下sqlserver的connection有没有full.
#如果是认证的问题.
可到sqlenterprice manager->指定server->内容->安全性.
把验证改为SQLserver 及 windows.
#点选属性检查一下port是否正确.
#执行%MSSQL_HOME%80ToolsBinnSVRNETCN.exe
把TCP/IP启用.
#关掉防火墙.

TAG:

 

评分:0

我来说两句

Open Toolbar