将数据库连接到另一台计

时间:2013-05-27 06:04:50

标签: java oracle soap jdbc

我在一个网络上有两台计算机。我已经进入了另一台计算机的ip,它在浏览器中工作正常,但是当在java上使用这个ip时,我发现连接到我的localhost数据库的数据库不是来自其他计算机!

我的代码jdbc

  public Connection MakeConnect() throws ClassNotFoundException, SQLException{

    Class.forName("oracle.jdbc.driver.OracleDriver");

Connection connection =  DriverManager.getConnection(
            "jdbc:oracle:thin:http://192.168.1.109:5560/isqlplus", "school",
            "sch"); // first : user(hr) second pass(hr) .!

   return connection ; // return connetion of database 

4 个答案:

答案 0 :(得分:1)

我认为您的JDBC连接字符串格式可能不正确。您应该通过以下方式提供此信息:

jdbc:oracle:thin:@[HOST][:PORT]:SID
jdbc:oracle:thin:@//[HOST][:PORT]/SERVICE

相反,它看起来你指定了ISQLPLus链接。我没有测试过,但我的胆量说我是这个原因。我认为在你的情况下它应该是这样的:

jdbc:oracle:thin:@192.168.1.109/SERVICEorSID

您必须自己找到服务名称。在通用情况下,它是数据库的名称。默认情况下,它通常设置为ORCL,但可能将其设置为其他名称。

请务必阅读以下文档:http://www.orafaq.com/wiki/JDBC

答案 1 :(得分:0)

如果连接成功且没有错误,并且此192.168.1.109 IP地址不是本地计算机,则必须连接到其他计算机。

是什么让你认为它连接到本地数据库实例?

答案 2 :(得分:0)

检查另一台计算机的防火墙设置。有时它可能不允许外部连接

答案 3 :(得分:0)

如果要允许特定客户端ip-address(例如:192.168.1.4)访问服务器上运行的mysql数据库,则应在运行mysql数据库的服务器上执行以下命令。

    $ mysql -u root -p
    Enter password:
    mysql> use mysql
    mysql> GRANT ALL ON *.* to root@'192.168.1.4' IDENTIFIED BY 'your-root-password'; 
    mysql> FLUSH PRIVILEGES;

此外,更新防火墙规则以确保在运行mysql数据库的服务器上打开端口#3306。