设为首页 收藏本站
查看: 1003|回复: 0

[经验分享] 谈JDBC SQL SERVER 不能连接的问题

[复制链接]

尚未签到

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

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

由于微软公司关于一个安全性问题的考虑,让个人版的sql server 不监听1433端口.故在通过驱动连接数据库的时候会出现该Error establishing socket错误,所以如果通过jdbc连接sql server 就必须给数据库打补丁,补丁包下下来是exe文件,执行它,随便选个文件夹运行,然后再打开该文件夹,执行里面的setup.bat,这样你的数据库就打上了补丁了,并且1433端口就监听了,然后你在执行你的连接文件,就可以了(第一次的exe是解压,解压完再执行setup.bat才是安装)
有的时候还会出现一个问题说是什么sa用户没有建立可信任的连接,好象是这么个意思我记得不是很清楚了,这是因为你安装数据库的时候选用的是windows验证,应该选用混合模式,你打开企业管理器,选操作,点属性,在安全性中选择sql server 和windows这个选项,点确定,然后重启sqlserver和你的web服务器,在运行你的连接文件应该就可以了,
   就解决啦!
错误提示如标题所示。看来很可能是驱动程序出错了导致连接不上数据库,因此我检查是否启动数据库服务器,服务器已经启动,看来是我用的jdbc的驱动出错了。驱动程序出错总是一件很麻烦的事情。为了保险起见我还是编写了一个用jdbcodbc驱动的小程序来链接数据库,结果是运行正常的。看来是jdbc for sql server2000出错了。这时我想起实验室的一位仁兄用我的机器在另外一个帐号下面又安装了一个sql server2000的实例很可能那就是原因的所在,新装的实例使我以前对sql server2000进行sp4的升级失效导致驱动程序也不能用(jdbc的驱动程序要求sql server2000版本要sp3以上)。于是我重新对sql server升级到sp4问题解决了。
下面是我在网上找到的一些相同现象的解决方法:问题现象虽然相同但是原因可能不同方法也各异。
MS SQL2000 (Error establishing socket)错误的解决办法-SQL请选用混和安装模式
作者:YuLimin
* Error: get DB connection error. Ex. msg: java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.
server java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing 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的补丁
   SQL Server2000 SP4要注意,解压之后看到setup.bat这个文件,打开这个文件就开始安装SP4补丁。记得安装后,SQL 服务器是停止了,需要重新启动!安装之后,启动SQL服务器,打开查询分析器,输入select @@version,按F5执行,如果出现Microsoft SQL Server 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)则说明SQL Server2000的补丁SP4安装成功
驱动也要对应SP3的.  
---------------------------------------------------------------
1、下载Microsoft SQL Server 2000 Service Pack 3a并安装,SQL请选用混和安装模式!!!
http://www.microsoft.com/downloads/details.aspx?FamilyId=90DCD52C-0488-4E46-AFBF-ACACE5369FA3&displaylang=zh-cn   
2、下载SQL Server 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"Error establishing socket"
jdbc配置语句为: jdbc:microsoft:sqlserver://server_name:1433
如运行程序时出现 "Error establishing socket" 错误,则应进行如下调试:

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

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

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-294795-1-1.html 上篇帖子: [SQL Server] 获取当前连接用户及IP地址 下篇帖子: SQL Server 2008错误_无法连接到WENTASY-PC/SQLEXPRESS解决
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表