运行连接到另一台计算机上的localhost数据库的Java程序

时间:2014-03-13 14:37:08

标签: java mysql localhost remote-access

我使用以下代码将我真正基本的Java应用程序连接到计算机上的Wamp服务器

try {  
        Class.forName("com.mysql.jdbc.Driver");  
        Connection connection = DriverManager.getConnection(  
                "jdbc:mysql://localhost:3306/project", "root", "password");

显然,这个程序在我的计算机上运行,​​但没有其他人,我需要将其作为一个项目提交。

我是否可以修改此部分,以便我的合作伙伴和教师可以从他们的计算机上运行代码,而无需下载任何特殊软件,并访问我本地主机上的数据库?可能想用//localhost:3306替换//my IP address:8080

我得到的所有建议都涉及网络,我不知道任何事情,所以我不想尝试然后弄乱我的电脑,除非我真的确定

我已经注意到的事情,但不确定:

  • C:/wamp/alias/phpmyadmin.conf并输入第ALLOW (other person's IP)
  • 团队查看器(要求其他计算机使用我的程序以外的软件)
  • 打开我的路由器端口以接收传入的请求

任何事情都可以帮助人们,即使只是确认没有一些网络也无法完成。 如果这是一个没有经验的人可以做的事情,我会接受它。

1 个答案:

答案 0 :(得分:1)

除了您尝试过的内容之外,您还需要授予访问数据库的权限。

尝试从其他IP地址向用户授予权限。

阅读文档GRANT Syntax

示例

GRANT ALL ON test.* TO '%'@'localhost' ...
GRANT ALL ON test.* TO '%'@'%' ...
GRANT ALL ON test.* TO 'ravinder'@'192.168.1.105' ...
etc...

还有其他形式允许特定数据库对象访问从特定计算机或所有用户连接的特定或所有用户 我建议你选择一个适合你需要的那个。

但请注意,'%'@'%'将允许来自所有系统的所有用户。

授予权限后,使用您的IP地址更改连接字符串的dbURL值。

Connection connection = 
DriverManager.getConnection(  
                "jdbc:mysql://your_system_ip_or_name_here:3306/project",
                "root", "password");

在所需的系统上部署重新生成的应用程序,它应该正常工作。