Running a Java program that connects to a localhost database on a different computer

走远了吗. 提交于 2019-12-13 02:54:17

问题


I've connected my really basic Java application to the Wamp server on my computer using the following code

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

Obviously, this program runs on my computer, but no one else's, and I need to submit this as a project.

Is there anyway I can modify this part so that my partner and teacher can run the code from their computers, without having to download any special software, and access the database on my localhost? Possibly like replacing //localhost:3306 with //my IP address:8080?

All suggestions I've gotten involve networking, which I don't know anything about so I don't want to try and then mess up my computer unless I'm really sure

Things I've already looked in to, but aren't sure about:

  • C:/wamp/alias/phpmyadmin.conf and entering the line ALLOW (other person's IP)
  • team viewer (requires the other computer to use software other than my program)
  • opening my router port to take incoming requests

Anything'll help guys, even just confirming it can't be done without some networking. If it's something an inexperienced person can do, I'll take it.


回答1:


Apart from what you have tried, you also need granting privileges to access your database.

Try granting privileges to users from other IP addresses.

Read documentation GRANT Syntax.

Example:

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

There are other forms of granting access to specific database object to specific or all users connecting from a specific computer or all.
I suggest you chose the one which is appropriate for your need.

But, keep in mind that '%'@'%' will allow all users from all systems.

After granting the privileges, change your dbURL value for connection string with your IP address.

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

Deploy the regenerated app on desired systems and it should be working.



来源:https://stackoverflow.com/questions/22381970/running-a-java-program-that-connects-to-a-localhost-database-on-a-different-comp

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!