jdbc for sqlserver 连接数据库怎么老是出错呀!! 用jdbc for sqlserver 驱动连接sql数据库的时候怎么老是:error establish socket!错误呀我怀疑是sql的1433号端口没有打开不知道怎么解决呀请大家帮帮忙呀! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 打开Microsoft SQL Server--服务器网络实用工具--启用的协议--TCP/IP--属性--默认端口客户端连接的方法: 打开Microsoft SQL Server--客户端网络实用工具--别名,添加 telnet <服务器IP地址> 1433如果命令执行成功,可以看到屏幕一闪之后光标在左上角不停闪动,这说明 SQL Server 服务器工作正常,并且正在监听1433端口的 TCP/IP 连接如果命令返回"无法打开连接"的错误信息,则说明服务器端没有启动 SQL Server 服务,也可能服务器端没启用 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 协议,选择"属性",可以检查客户端默认连接端口的设置,该端口必须与服务器一致.单击"别名"选项卡,还可以为服务器配置别名.服务器的别名是用来连接的名称,连接参数中的服务器是真正的服务器名称,两者可以相同或不同.别名的设置与使用HOSTS文件有相似之处. 首先可能是sp3补丁没有打,如果是XP系统一定要打SQLServer的sp3补丁,在官网上有下的,如果打了sp3补丁还是不行,那就是你的SQLServer默认的端口不是1433,在SQLServer中有个网络实用工具,在常规项中选TCP/IP,属性,就能看到默认端口是什么了,把你程序里的1433改成那个默认的就可以了,我的默认是1040,也不是1433 你先看看在sqlserver的客户端能连接不,如果可以,而且保证参数没有错的情况下,那就是驱动的问题了~微软有针对不同版本的驱动,下一个合适的~ 我用是xp sp2 系统,sql也升级到sp3了打开服务器后用netstat -a -n看不到1433号端口处于增听状态换上其他的端口也不行呀我在2000的系统上就轻松完成了 我用的xp系统,SQL Server 2000 + SP3 补丁包在附件中的“命令提示符” telnet localhost 1433 ,显示成功了!环境变量 : classpath=d:\jdk\bin;.;d:\jdk\lib;D:\tomcat\common\lib\servlet.jar;D:\SQLDriverForJDBC\lib\msbase.jar;D:\SQLDriverForJDBC\lib\mssqlserver.jar;D:\SQLDriverForJDBC\lib\msutil.jarCATALINA_BASE = d:\tomcatCATALINA_HOME = d:\tomcatjava_home = d:\jdkmsbase.jar;mssqlserver.jar;msutil.jar 三个我都放在了 D:\tomcat\common\lib 测试用的代码如下:<%@ page contentType="text/html;charset=gb2312"%> <%@ page import="java.sql.*,java.lang.*"%> <html> <body> <%Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance(); String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=test"; String user="sa"; String password="123"; Connection conn= DriverManager.getConnection(url,user,password); Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); String sql="select * from job"; ResultSet rs=stmt.executeQuery(sql); while(rs.next()) {%> 您的第一个字段内容为:<%=rs.getString(1)%> 您的第二个字段内容为:<%=rs.getString(2)%> <%}%> <%out.print("数据库操作成功,恭喜你");%> <%rs.close(); stmt.close(); conn.close(); %> </body> </html> 成功了以上的代码都是直接复制过来的。我也是刚搞好的,拿出来给你参考一下! 我现在也和你有一样的问题,在google找到是要加sp4是最新的补丁,可我找不到sp4,麻烦你找到了,发出来好吗?谢谢了 sp4:http://www.microsoft.com/downloads/details.aspx?FamilyId=8E2DFC8D-C20E-4446-99A9-B7F0213F8BC5&displaylang=zh-cn#filelist java所有程序员都可能犯错误的一道题!!! Java 什么容器可以执行HTML??? 求解:高手帮忙运行一下 关于ant的一个问题. 怎么获得抽象类的对象 为什么我的程序结束后,进程javaw.exe还不结束? 如何处理JNI中的字符串 问一个小问题:如何改变自己在论坛的用户名. 请各位帮忙分析一下这段程序,谢谢大家.. JAVA 枚举,急急急!!! 菜鸟问题,这段代码怎么理解 JAVA枚举类型
打开Microsoft SQL Server--客户端网络实用工具--别名,添加
如果命令返回"无法打开连接"的错误信息,则说明服务器端没有启动 SQL Server 服务,
也可能服务器端没启用 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 协议,选择"属性",可以检查客户端默认连接端口的设置,该端口必须与服务器一致.单击"别名"选项卡,还可以为服务器配置别名.服务器的别名是用来连接的名称,
连接参数中的服务器是真正的服务器名称,两者可以相同或不同.别名的设置与使用HOSTS文件有相似之处.
打开服务器后用netstat -a -n看不到1433号端口处于增听状态
换上其他的端口也不行呀
我在2000的系统上就轻松完成了
环境变量 : classpath=d:\jdk\bin;.;d:\jdk\lib;D:\tomcat\common\lib\servlet.jar;D:\SQLDriverForJDBC\lib\msbase.jar;D:\SQLDriverForJDBC\lib\mssqlserver.jar;D:\SQLDriverForJDBC\lib\msutil.jarCATALINA_BASE = d:\tomcat
CATALINA_HOME = d:\tomcat
java_home = d:\jdk
msbase.jar;mssqlserver.jar;msutil.jar 三个我都放在了 D:\tomcat\common\lib
测试用的代码如下:
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*,java.lang.*"%>
<html>
<body>
<%Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=test";
String user="sa";
String password="123";
Connection conn= DriverManager.getConnection(url,user,password);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql="select * from job";
ResultSet rs=stmt.executeQuery(sql);
while(rs.next()) {%>
您的第一个字段内容为:<%=rs.getString(1)%>
您的第二个字段内容为:<%=rs.getString(2)%>
<%}%>
<%out.print("数据库操作成功,恭喜你");%>
<%rs.close();
stmt.close();
conn.close();
%>
</body>
</html> 成功了以上的代码都是直接复制过来的。我也是刚搞好的,拿出来给你参考一下!
麻烦你找到了,发出来好吗?谢谢了