java - 如何使用java程序连接到远程机器上托管的数据库
问题描述
我正在尝试连接到托管在远程计算机中的数据库。我在本地有一个 java 项目,它必须连接到远程机器中的数据库以进行更新。我可以用来连接的java代码是什么。传统的连接代码不起作用,并显示以下错误。
import java.beans.Statement;
import java.sql.*;
public class connectTest {
public static void main(String[] args) {
try{
//step1 load the driver class
Class.forName("oracle.jdbc.driver.OracleDriver");
// Class.forName("oracle.jdbc.OracleDriver");
Connection con=DriverManager.getConnection(
"jdbc:oracle:thin:@172.25.250.183:1521/aaadv4","boomerang","Telus2014");
Wrapper stmt=con.createStatement();
ResultSet rs=((java.sql.Statement) stmt).executeQuery("select * from ttv_dhcp_log.ACCT_MSG where SUB_IF='BACUPQXQOT01 PON 1/1/12/02:21.1.1'");
while(rs.next())
System.out.println(rs.getString(1)+" "+rs.getString(2)+" "+rs.getString(3));
//step5 close the connection object
con.close();
}catch(Exception e){ System.out.println(e);}
}
}
我希望它能够连接到数据库,但它失败并显示以下消息。
java.sql.SQLException:Io 异常:网络适配器无法建立连接
解决方案
您可能需要验证几件事。
检查端口是否可以从机器访问。使用 telnet 之类的命令来检查。例如:telnet IPaddress 端口号
检查计算机中的防火墙,查看是否允许连接到端口范围。
- 检查 Oracle db 是主机的机器中的防火墙规则。
- 确保您的凭据正确。
Class.forName("oracle.jdbc.driver.OracleDriver"); Connection connection = null; connection = DriverManager.getConnection("jdbc:oracle:thin:@172.25.250.183:1521:aaadv4","username","password"); connection.close();
使用上述。您的数据库连接 URL 包含 "/" 而不是 ":" 。此外,请确保您的 IP 地址可以从您的机器访问。如果你在同一个网络。它应该是。如果没有,请按照上面给出的调试步骤进行操作。
推荐阅读
- bash - 通过 kubectl 获取上次成功完成 cronjob 的时间戳
- chef-infra - 刀和berkshelf的区别?
- javascript - 当我尝试使用数据库中的帐户登录时,我的 ajax 调用不会进入 succes 事件。有人有什么建议吗?
- java - 设计模式下 JFace 应用程序的问题
- node.js - 循环依赖检测到猫鼬错误
- excel - 在VB中将Excel转换为文本
- jquery - 在页面完全加载 jquery3 时显示预加载器
- javascript - js 按值从对象数组中删除重复项并计算重复项
- c# - 在统一中,如何访问作为对象子级的按钮文本?
- amazon-web-services - 如何在 Fargate 上的 AWS ECS 环境中存储 GOOGLE_APPLICATION_CREDENTIALS?