如何在另一台使用java和jdbc和sql的计算机上成功访问数据库?

问题描述:

我在另一台电脑上有这个数据库,我想通过使用像这样的连接字符串来访问它。如何在另一台使用java和jdbc和sql的计算机上成功访问数据库?

Class.forName("com.mysql.jdbc.Driver"); 
     con = DriverManager.getConnection("jdbc:mysql://192.168.0.1/dbtina","root","1234"); 

“dbtina”是我们的数据库。 “1234”是我们的密码。并且我们已经配置了我们的ip,因为我们使用的是有线连接(点对点)。

Exception: Communications link failure 

Last packet sent to the server was 0 ms ago.* 

我该如何解决这个问题?

打开数据库所在计算机的防火墙上的端口。

+0

怎么做呢XD – Weddy

+1

嗯,首先,你能提供一些细节.. 。您在计算机上使用数据库的操作系统是什么?你在那里使用什么样的防火墙或防病毒软件?根据您的评论判断,我还想问问计算机运行的计算机的IP是什么... – ppeterka

+0

昨天我们做到了。谢谢你pperterka:D – Weddy

您必须在数据库计算机上配置防火墙,以允许来自特定端口上不同计算机的通信。

+1

如何做呢XD – Weddy

只需禁用防火墙。或打开3306端口为MySQL 使用这个链接,如果它甚至这样做,你可能会得到安全异常后帮助

manually open port

。使用mysql GRANT查询来授予权限。

mysql>在db_base。上授予所有特权。* TO db_user @'ip_address'IDENTIFIED BY'db_passwd';

grant example

相应更改代码:

Class.forName("com.mysql.jdbc.Driver");   
con = DriverManager.getConnection("jdbc:mysql://192.168.0.1:3306/dbtina", 
    "root","1234"); 

GRANT ALL PRIVILEGES ON *.* TO 'USERNAME'@'%' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;