Assuming I have this Connection String on my local host:
public static Connection ConnectDB(){
try{
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost/supermarket", "root","");
return con;
}
When I am trying to Connect to this system from another. What should I change to access the database?
Say my IP Address on the system is : 192.168.137.1
3 Answers 3
your statement would become
Connection con = DriverManager.getConnection("jdbc:mysql://<IP Address>:<Port>/supermarket", "root","");
Use appropriate IP and Portnumber
Connection con = DriverManager.getConnection("jdbc:mysql://192.168.137.1:6036/supermarket", "root","");
Comments
To access a mysql db remotely, you have 3 things to consider:
- Provide the right ip address and port of your remote server
- Make sure that the firewall of your server is properly configured to allow remote accesses on your server port
- Grant the required privileges to your user to allow remote accesses
Command to execute to grant privileges to your user to access to the db from any remote hosts:
GRANT ALL PRIVILEGES
ON supermarket.*
TO 'root'@'%'
IDENTIFIED BY 'password';
Comments
Your connection is ok. But localhost represents your local machine IP.
You should change following things:
Make db.properties File
connection=jdbc:mysql://192.168.137.1:6036/supermarket
username=root
password=xyz
And Add following code in main method
public static Connection ConnectDB(){
try{
FileReader reader=new FileReader("db.properties");
Properties p=new Properties();
p.load(reader);
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection(p.getProperty("connection"),p.getProperty("username"),p.getProperty("password"));
return con;
}
Comments
Explore related questions
See similar questions with these tags.
localhostto the IP Address. I think you'll have to provide the port number as well. Something likex.x.x.x:yyyy