계층 이동 및 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
'programing' 카테고리의 다른 글
MySQL에서 두 날짜 간의 연도 차이를 정수로 가져옵니다. (0) | 2023.10.22 |
---|---|
팬더 데이터프레임의 전체 열의 하위 문자열 (0) | 2023.10.22 |
두 번째 테이블의 행이 존재하지 않더라도 오른쪽 조인 (0) | 2023.10.22 |
비트 유형 열에 삽입할 수 있는 값은 무엇입니까? (0) | 2023.10.22 |
파워셸 퇴장 중지 (0) | 2023.10.17 |