programing

계층 이동 및 Maria를 사용하여 데이터베이스에 연결하지 못함DB

newsource 2023. 10. 22. 20:04

계층 이동 및 Maria를 사용하여 데이터베이스에 연결하지 못함DB

.war-file(Eclipse-19를 사용하여 Java로 작성된 프로그램) 배포를 위해 layershift를 사용하고 있지만 데이터베이스에 대한 연결이 작동하지 않습니다.그래서 프로그램을 로컬에서 실행하고 계층 이동 서버에 놓여있는 데이터베이스에 연결하려고 합니다(로컬 데이터베이스를 사용하면 문제없이 해결됩니다).

tomcat/lib뿐만 아니라 프로젝트 클래스 경로에 connector mariadb-java-client-3.1.4.jar를 추가했습니다.

Class.forName("org.mariadb.jdbc.Driver");

계층 이동 서버를 구성하는 동안 프로그램을 로컬로 실행할 때 사용한 MariaDB 버전인 10.4.28을 선택합니다.

public String URLAbrufen() {

    //String server = "mysql://localhost";
    String server = "mariadb://node495323-studiquizv3.j.layershift.co.uk";
    String port = "3306";
    String database = "studiquiz";      
    String URL = "jdbc:" + server + ":" + port + "/" + database;
    System.out.println(URL);

    return URL;         
}

다음 URL을 만듭니다. jdbc: mariadb://node495323-studiquizv3.j.layershift.co.uk:3306/studiquiz

이렇게 데이터베이스를 연결하려고 합니다.

Connection connection = DriverManager.getConnection(url, BenutzerDB, PasswortDB);

서버를 설정하는 동안 계층 이동에서 제공한 자격 증명을 사용합니다.

프로그램을 실행하면 java.sql이라는 예외가 발생합니다.SQL 비일시적 연결예외: 소켓이 host:address=(host=node495323-studiquizv3.j.layershift.co.uk )(port=3306)(type=primary)에 연결하지 못했습니다. 연결 시간 초과: 추가 정보 없음

계층 이동 서버의 데이터베이스에 대한 연결이 작동하지 않는 것 같습니다. 이 연결을 성공적으로 설정하려면 어떻게 해야 합니까?

내 코드의 재현 가능한 최소 예:

package studiquiz_test_p1;

import java.sql.*;

public class main {
    
    public static void main(String[] args) {

        try {
            Class.forName("org.mariadb.jdbc.Driver");
            
            String server = "mariadb://node495323-studiquizv3.j.layershift.co.uk";
            String port = "3306";
            String database = "studiquiz";      
            String URL = "jdbc:" + server + ":" + port + "/" + database;
            
            String BenutzerDB = "root";
            String PasswortDB = "password"; 
            
            Connection connection = DriverManager.getConnection(URL, BenutzerDB, PasswortDB);            
            //Statement statement = connection.createStatement();
            
            System.out.println("Connection successful.");       
        } catch (ClassNotFoundException e) {
            System.out.println("Connection failed [ClassNotFoundException].");
            e.printStackTrace();
        } catch (SQLException e) {
            System.out.println("Connection failed [SQLException].");
            e.printStackTrace();
        }
    }
}

응원해주셔서 감사합니다!

언급URL : https://stackoverflow.com/questions/76697232/connection-to-database-fails-using-layershift-and-mariadb