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