0

我在一个网络上有两台计算机。我输入了另一台计算机的 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

4 回答 4

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

于 2013-05-27T08:45:28.747 回答
0

如果连接成功且没有错误,并且该192.168.1.109IP 地址不是您的本地机器,则它必须连接到其他机器。

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

于 2013-05-27T06:07:43.797 回答
0

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

于 2013-05-27T06:09:10.670 回答
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。

于 2013-05-27T07:15:19.507 回答