Maria Gonzalez
Maria Gonzalez

Reputation: 13

Connect Java remotely to MYSQL DB on another network

I want to write a java application that uses a mysql database to store and retrieve information. I am still just a beginner and I do not have a lot of knowledge on web hosting providers and server architecture. In this application, several clients will have to access this remote database located on a server machine maybe.

Currently, I can connect to the database from the same computer that runs the mysql server (I am using workbench by the way). Any suggestions on what should I do?

public static Connection openDatabase()
{ 
    Connection myConn;
    try {

      myConn = 
            DriverManager.getConnection(Configs.getProperty("DatabaseURL"));

     return myConn;
   } catch (SQLException e) {

      e.printStackTrace();
   }

   return null;
}

The url is:

jdbc:mysql://Atomic-PC:3306/test?autoReconnect=true&rewriteBatchedStatements=true&useSSL=false&user=root&password=password

Upvotes: 1

Views: 2489

Answers (3)

Ravi
Ravi

Reputation: 31407

If you are trying to connect to remote database then yo need to change the database url from localhost to remote server ip address.

jdbc:mysql://Atomic-PC:3306/test

to

jdbc:mysql://<db-server-ip-address>:<db-server-port>/<db-name>

Assuming, remote server ip address is 10.234.05.123 and database port number is 3300 and database name is remoteDB. Then,

jdbc:mysql://10.234.05.123:3300/remoteDB

Upvotes: 0

shawon
shawon

Reputation: 166

First of all you have to find connection URL, port and credential from MySql workbench you are using. If hosting provider provides a public IP for DB server you should be able to access it from anywhere by using following code in Java.

import java.sql.Connection;
import java.sql.DriverManager;

public class Main {
  public static void main(String[] argv) throws Exception {
    String driver = "com.mysql.jdbc.Driver";
    String connection = "jdbc:mysql://localhost:3306/YourDBName";
    String user = "root";
    String password = "root";
    Class.forName(driver);
    Connection con = DriverManager.getConnection(connection, user, password);
    if (!con.isClosed()) {
      con.close();
    }
  }
}

For this reason you have to import mysql connection driver to your application first.

Upvotes: 1

user1063108
user1063108

Reputation: 712

your web hosting company should be able to provide you with the url:port which you can use in your connection string to connect to MySQL(or any other remote db for that matter)

Upvotes: 0

Related Questions