J'ai utilisé:
Connection connection = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/test", "username", "password"
);
Statement stmt = connection.createStatement();
stmt.executeUpdate("CREATE TABLE a (id int not null primary key, value varchar(20))");
stmt.close();
connection.close();
mais cela donne une erreur "Pas de route vers l'hôte"
//STEP 1. Import required packages
package mariadb;
import Java.sql.*;
public class Mariadb {
// JDBC driver name and database URL
static final String JDBC_DRIVER = "org.mariadb.jdbc.Driver";
static final String DB_URL = "jdbc:mariadb://192.168.100.174/db";
// Database credentials
static final String USER = "root";
static final String PASS = "root";
public static void main(String[] args) {
Connection conn = null;
Statement stmt = null;
try {
//STEP 2: Register JDBC driver
Class.forName("org.mariadb.jdbc.Driver");
//STEP 3: Open a connection
System.out.println("Connecting to a selected database...");
conn = DriverManager.getConnection(
"jdbc:mariadb://192.168.100.174/db", "root", "root");
System.out.println("Connected database successfully...");
//STEP 4: Execute a query
System.out.println("Creating table in given database...");
stmt = conn.createStatement();
String sql = "CREATE TABLE REGISTRATION "
+ "(id INTEGER not NULL, "
+ " first VARCHAR(255), "
+ " last VARCHAR(255), "
+ " age INTEGER, "
+ " PRIMARY KEY ( id ))";
stmt.executeUpdate(sql);
System.out.println("Created table in given database...");
} catch (SQLException se) {
//Handle errors for JDBC
se.printStackTrace();
} catch (Exception e) {
//Handle errors for Class.forName
e.printStackTrace();
} finally {
//finally block used to close resources
try {
if (stmt != null) {
conn.close();
}
} catch (SQLException se) {
}// do nothing
try {
if (conn != null) {
conn.close();
}
} catch (SQLException se) {
se.printStackTrace();
}//end finally try
}//end try
System.out.println("Goodbye!");
}//end main
}//end JDBCExample
J'utilise cet exemple. Je change l'adresse de liaison en 127.10.230.440. et je redémarre le serveur Sudo /etc/init.d/mysql start.
Élément de liste
Je pense que le problème vient du port TCP/IP. Mariadb n'écoute pas l'hôte local. Vous devriez essayer: Configurer mariadb pour écouter sur localhost. Dans le /etc/my.cnf
fichier de configuration, sous la ligne [mysqld], ajoutez ce qui suit:
bind-address = 127.10.230.440
Ou essayez de déconnecter la base de données MYSQL en premier.
public class ConnectionDemo {
String userName,password,url,driver;
Connection con;
Statement st;
public ConnectionDemo() {
userName="root";
password="root";
url="jdbc:mariadb://localhost:3306/stud";
driver="org.mariadb.jdbc.Driver";
try {
Class.forName(driver);
con=DriverManager.getConnection(url, userName, password);
st=con.createStatement();
System.out.println("Connection is successful");
} catch (Exception e) {
e.printStackTrace();
}
}