【问题标题】:Connecting to external database using java使用java连接到外部数据库
【发布时间】:2011-08-10 02:52:35
【问题描述】:

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

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

我正在使用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){}

【问题讨论】:

  • 检查用户名密码对是否正确。并确保系统上正在运行 sql server。还要检查端口号。
  • 还要检查你是否有远程访问数据库的权限(默认情况下拒绝远程访问是常见的做法)
  • 连接在 Windows 上工作,所以我假设我有权限,它只是不能在 AIX 上工作

标签: java jdbc aix jtds


【解决方案1】:

来自jTDS documentation

为什么我在尝试建立连接时得到 java.sql.SQLException: "Network error IOException: Connection refused: connect"?

当 jTDS 无法连接到服务器时,会抛出“连接被拒绝”异常。发生这种情况的原因可能有很多:

  • 服务器名称拼写错误或端口号不正确。
  • SQL Server 未配置为使用 TCP/IP。从 SQL Server 的网络实用程序应用启用 TCP/IP 或让 jTDS 通过命名管道连接(有关如何执行此操作的信息,请参阅 URL 格式)。
  • 服务器上有防火墙阻止了 1433 端口。

要检查是否启用了 TCP/IP 并且端口没有被阻止,您可以使用“telnet 1433”。在 telnet 没有连接之前,jTDS 也不会。如果您不知道原因,请向您的网络管理员寻求帮助。

我敢打赌,您的防火墙不允许 AIX 主机连接。

【讨论】:

  • 我尝试了“telnet ipaddress”并得到“telnet:连接:远程主机拒绝尝试连接操作。”
  • @Mike,您应该使用telnet ipaddress port 进行测试,默认情况下telnet 使用端口23。默认SQL Server 端口是1433。
  • a ping ipaddress 得到响应
  • ping 证明ICMP 被防火墙允许并且服务器是可达的。不告诉任何关于其他端口的信息。
  • telnet ipaddress port 给出“telnet:连接:远程主机拒绝尝试连接操作。”错误
猜你喜欢
  • 2012-12-27
  • 2017-10-15
  • 2021-12-11
  • 1970-01-01
  • 2021-02-26
  • 2016-05-30
  • 1970-01-01
  • 1970-01-01
  • 2016-05-09
相关资源
最近更新 更多