0

我有一个连接到 MS SQL 数据库的 java 程序。该程序在通过 Eclipse 运行时运行良好,但是当我通过 AIX 运行它时出现错误:

java.sql.SQLException:网络错误 IOException:远程主机拒绝了尝试的连接操作。

我可以成功 ping 服务器,但无法 telnet 进入服务器。我也无法从我的 Windows 桌面远程登录。

我正在使用 jtds 连接:

String connectionString = "jdbc:jtds:sqlserver://"+dropez_ip_address+"/"+dropez_db_name;
ResultSet rs = null;
Statement stmt = null;

try{

    Class.forName("net.sourceforge.jtds.jdbc.Driver");
    Connection conn = DriverManager.getConnection(connectionString, dropez_db_username, dropez_db_password);

    stmt = conn.createStatement();
}catch(Exception e){}

这是 jTDS 中有关该问题的一些文档,但我仍然无法解决该问题。

Why do I get java.sql.SQLException: "Network error IOException: Connection refused: connect" when trying to get a connection?

The "Connection refused" exception is thrown by jTDS when it is unable to connect to the server. There may be a number of reasons why this could happen:

    - The server name is misspelled or the port number is incorrect.
    - SQL Server is not configured to use TCP/IP. Either enable TCP/IP from SQL Server's Network Utility app or have jTDS connect via named pipes (see the URL format for information on how to do this).
    - There is a firewall blocking port 1433 on the server.

To check whether TCP/IP is enabled and the port is not blocked you can use "telnet 1433". Until telnet doesn't connect, jTDS won't either. If you can't figure out why, ask your network administrator for help.
4

2 回答 2

2

如果您无法在端口 1433 上进行 telnet,则您的计算机和服务器之间的某处被防火墙阻止了。这不是与java相关的问题。

可能是当您说“它在 Eclipse 下完美运行,但不是 AIX”时,您正在使用大约 2 台不同的计算机?如果是这样,则带有 eclipse 的那个没有防火墙,您部署应用程序的那个被阻止。

但同样,与java无关。这是 TCP-IP 模型的第 3 级错误(TCP 层)。

问候, 斯蒂芬

于 2011-08-10T16:34:51.300 回答
0

您的 SQL Server 数据库可能没有启用 TCP/IP 协议,以启用它:

  1. 从 Microsoft SQL Server 2005 -> 配置工具,打开“Microsoft SQL Server 配置管理器”。

  2. 展开“SQL Server 2005 网络配置”,然后单击“协议”。

  3. 右键单击“TCP/IP”,然后单击“启用”。该协议的图标将更改以显示该协议已启用。

对于 SQL Server 2008:

SQL Server 2008 网络配置

于 2011-08-10T16:41:39.923 回答