import java.sql.*; public class Jdbcsql { 
public static void main(String[] args) { 
String dbURL = "jdbc:microsoft:sqlserver://localhost:1433; DatabaseName=dictionary"; 
String userName = "sa"; 
String userPwd = ""; 
Connection dbConn; try { 
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance(); 
dbConn = DriverManager.getConnection(dbURL, userName, userPwd); 
System.out.println("Connection Successful!"); 
dbConn.close();

catch (Exception e) { 
e.printStackTrace(); 


} 我打好了sql sp4的补丁,用的是jdbc for sql2000 sp3驱动,可还是出现
---------- java ----------
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)
at com.microsoft.jdbc.sqlserver.tds.TDSConnection.<init>(Unknown Source)
at com.microsoft.jdbc.sqlserver.SQLServerImplConnection.open(Unknown Source)
at com.microsoft.jdbc.base.BaseConnection.getNewImplConnection(Unknown Source)
at com.microsoft.jdbc.base.BaseConnection.open(Unknown Source)
at com.microsoft.jdbc.base.BaseDriver.connect(Unknown Source)
at java.sql.DriverManager.getConnection(DriverManager.java:512)
at java.sql.DriverManager.getConnection(DriverManager.java:171)
at Jdbcsql.main(Jdbcsql.java:12)输出完成 (耗时: 2 秒) - 正常终止
不知是何情况,请大家帮帮忙

解决方案 »

  1.   

    Error   establishing  socket。
    可能是你的防火墙,或者SQL Server的远程访问权限的问题。
      

  2.   

    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%\80\Tools\Binn\SVRNETCN.exe
    把TCP/IP启用.#关掉防火墙.#把SQL server update到sp3:
    http://www.microsoft.com/sql/downloads/2000/sp3.asp经我验证,一般升级到sp3就好用了!
      

  3.   

    java.sql.SQLException:   [Microsoft][SQLServer   2000   Driver   for   JDBC]Error   establishing   socket. 你的包肯定没打上!没悬念
    请 select @@version
    查看版本信息
    下到的补丁双击后到一个文件夹,这个过程只是一个解压过程
    请到那个文件夹找到安装文件
      

  4.   

    2楼的朋友谢谢,确实我用netstat -an察看过,1433端口没有被监听,但是我下载了sp4的补丁,没有任何反应
      

  5.   

    1433端口没有被监听??你确认你的SQL Server 启动了?我表示怀疑!
    你用企业管理器连接看看!如果不能连接,你的SQL Server 安装失败或者根本没有启动!
      

  6.   

    如果 
    telnet localhost 1433
    显示无法打开端口之类的错误,则说明你的SQL 没有启动请按照2楼的方法继续查下去!
      

  7.   

    你是用桥连接。你没有jar那个驱动请下载!
      

  8.   

    是sql补丁的问题或者是纯java连接驱动包没导入进去吧,自己一步一步的检查下
    我以前连数据库也遇到了这种问题, 把sql升级一下就可以了
      

  9.   

    MSSQL默认的1433端口不对外开放
    配置工具-> Sql   Server   Configuration   Manager-> MSSQLSERVER的协议 看看TCP/IP协议是否启动,如果启动,右键菜单点"属性"   ,在分页菜单中选"IP地址",把"IP1"和"IP2"中"TCP端口"为1433, "已启用"改为"是" 配置工具-> Sql   Server   Configuration   Manager-> SQL   Native   Client   配置-> 客户端协议-> TCP/IP 选择TCP/IP右键菜单中"属性",确认"默认端口"是1433,"已启用"为"是"