连接到Microsoft SQL Server时出错

时间:2010-02-04 11:40:12

标签: java sql-server

我正在尝试从java连接到MS SQL Server 2005,我收到以下错误, 有谁可以帮助我?

private static final String DRIVER_CLASS = "com.microsoft.jdbc.sqlserver.SQLServerDriver"; 
Class.forName(DRIVER_CLASS); 
DriverManager.getConnection("jdbc:sqlserver://localhost:1433","sa","root");

我添加了以下5个jar文件:

  • msbase
  • MSSQLSERVER
  • msutil
  • sqljdbc
  • sqljdbc4

例外是:

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(Unknown Source)
 at java.sql.DriverManager.getConnection(Unknown Source)

2 个答案:

答案 0 :(得分:1)

你是防火墙吗?如果是这样,也许您需要对端口1433进行例外处理

答案 1 :(得分:0)

请检查服务器上启用的协议。转到“开始”/“程序”/“Microsoft”|“SQL Server 2005”/“配置工具”/“SQL Server配置管理器”。检查是否在SQL Server 2005网络配置/ MSSQLSERVER协议下启用了tcp。

请检查您是否没有命名实例 - 默认情况下,SQL Server Express版本会创建一个命名实例。

第三个 - 检查SQL Server是否具有混合模式身份验证 - 如果不是,它将不允许您使用SQL登录名和密码进行连接。顺便说一句,使用sa帐户开发应用程序是一个坏主意。