【发布时间】:2011-10-24 06:23:19
【问题描述】:
我有一个连接到 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.
【问题讨论】:
-
“我可以成功 ping 服务器,但无法远程登录服务器。我也无法从我的 windows 桌面远程登录。”你的意思是远程登录不是已安装,或者您没有使用它的权限,或者您尝试在那里 telnet 并且没有(或某些事情)发生?
-
Telnet 与此无关。您没有通过 telnet 连接到数据库。您的数据库服务器不允许从您的应用程序连接到 SQL Server 端口 (1433);这可能是网络配置或防火墙配置问题,而不是软件问题。