Running a Java program that connects to a localhos

2019-08-30 06:36发布

问题:

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.