Reputation: 2500
I'm trying to connect to a remote SQL database that I can access via web through http://smart.ihu.edu.gr/phpmyadmin/. The database inside that is awesomedb/pwndoes'
. That's where the tables that I want to use are.
The thing is, I'm completely new to Database/mySQL connectivity in applications and even though I've tried working through the examples posted here: Connect Java to a MySQL database I've been unable to connect to the DB yet.
Here's my code:
package thesistest;
import java.sql.*;
public class ThesisTest {
public static void main(String[] args)
{
//-------------------------------------
// JDBC driver initialisation
//-------------------------------------
try
{
System.out.println("Loading driver...");
Class.forName("com.mysql.jdbc.Driver");
System.out.println("Driver loaded!");
}
catch(ClassNotFoundException e)
{
throw new RuntimeException("Cannot find the driver in the classpath!", e);
}
//-------------------------------------
// Driver loaded, let's try establishing a connection.
//-------------------------------------
String url = "jdbc:mysql://smart.ihu.edu.gr/phpmyadmin/awesomedb/pwnodes";
String username = "root";
String password = "[redacted]";
Connection connection = null;
try
{
System.out.println("Connecting database...");
connection = DriverManager.getConnection(url, username, password);
System.out.println("Database connected!");
}
catch (SQLException e)
{
throw new RuntimeException("Cannot connect the database!", e);
}
finally
{
System.out.println("Closing the connection.");
if (connection != null) try { connection.close(); } catch (SQLException ignore) {}
}
} //end of main
} //end of class ThesisTest
I'm convinced that the URL I'm typing in is wrong. Note that the database is remote and I do not have an instance of any mySQL software running on my machine. Is it possible to just connect a simple java app with a remote DB this way?
Note 2: I have tried putting :3306 at the end of the smart.ihu.edu.gr link, to no avail. Thanks for the headsup, @NickJ
By the way, here's the result of the build+run:
(Full resolution here: https://i.sstatic.net/etHVv.png)
Upvotes: 1
Views: 3119
Reputation:
Java returns Unknown Database
because it´s searching for a database on /awesomedb/pwnodes
but the path you give is a table.
You have to give Java the path to your awesomedb
and connect to it.
After that you send something like:
INSERT INTO pwnodes (col_name,...)
Code for connecting:
package theistest;
import java.sql.DriverManager;
import java.sql.Connection;
import java.sql.SQLException;
public class ThesisTest {
public static void main(String[] argv) {
System.out.println("-------- MySQL JDBC Connection Testing ------------");
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
System.out.println("Where is your MySQL JDBC Driver?");
e.printStackTrace();
return;
}
System.out.println("MySQL JDBC Driver Registered!");
Connection connection = null;
try {
String url = "jdbc:mysql://smart.ihu.edu.gr:3306/awesomedb";
String username = "root";
String password = "[redacted]";
connection = DriverManager.getConnection(url, username, password);
} catch (SQLException e) {
System.out.println("Connection Failed! Check output console");
e.printStackTrace();
return;
}
if (connection != null) {
System.out.println("You made it, take control your database now!");
} else {
System.out.println("Failed to make connection!");
}
}
}
Upvotes: 3
Reputation: 4623
I don't think you have to go to phpmyadmin
URL path.
My assumption is that MySQL runs on port 3306 on that server, but you don't need to reach phpmyadmin
.
So I'd try the following URL: jdbc:mysql://smart.ihu.edu.gr:3306/awesomedb/pwnodes
Upvotes: 1