반응형
java를 사용하여 mariadb에 접속하려면 어떻게 해야 하나요?
사용한 적이 있습니다.
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();
그러나 "No route to host"라는 오류가 나타납니다.
Java MariaDB의 예:
//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
저는 이 예를 사용합니다.바인드 주소를 127.10.230.440으로 변경하고 서버 sudo /etc/init.d/mysql start를 재시작합니다.
목록 항목
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();
}
}
문제는 TCP/IP 포트인 것 같습니다.Mariadb는 로컬호스트의 말을 듣지 않습니다.localhost에서 수신하도록 mariadb를 설정합니다.에서/etc/my.cnf
config file의 [mysqld]행 아래에 다음 항목을 추가합니다.
bind-address = 127.10.230.440
또는 먼저 MYSQL 데이터베이스의 연결을 끊습니다.
저도 같은 문제가 있었는데, 그 이유는 제가 운전기사를 잘못 봤기 때문입니다.mariadb-java-client-XXX.jar(NO Source 버전!)가 필요하며 클래스 경로에 추가합니다.일이 잘 풀려서 조금이나마 도움이 됐으면 좋겠습니다.
언급URL : https://stackoverflow.com/questions/37909487/how-can-i-connect-to-mariadb-using-java
반응형
'sourcecode' 카테고리의 다른 글
Cenum으로 인쇄하다. 값 대신 텍스트. (0) | 2022.09.05 |
---|---|
정적 메서드 내에서 비 정적 내부 클래스를 인스턴스화하려면 어떻게 해야 합니까? (0) | 2022.09.05 |
로컬 시스템과 클라우드 인스턴스 간의 단방향 SymmetricDS 동기화 (0) | 2022.09.05 |
SQL 테이블 정의가 잘못되었습니다. 자동 열은 하나만 있을 수 있으며 키로 정의해야 합니다. (0) | 2022.09.05 |
Ruby gem mysql2 설치 실패 (0) | 2022.09.05 |