通过telnet连接到外部数据库

时间:2011-08-10 16:24:15

标签: java unix telnet jtds

我有一个连接到MS SQL数据库的java程序。当通过eclipse运行时,程序完全但是当我通过AIX运行时出现错误:

  

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

我可以成功ping服务器,但无法远程登录服务器。我也无法从我的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.

2 个答案:

答案 0 :(得分:2)

如果您无法通过端口1433进行远程登录,则您的计算机与服务器之间的中间位置会被防火墙阻止。这不是与java相关的问题。

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

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

此致  斯特凡

答案 1 :(得分:0)

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

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

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

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

  4. 对于SQL Server 2008:

    SQL Server 2008 Network Configuration