DB 연결은 SSH 탭에 포트포워딩 하는 호스트와 포트 등 적어주고 DB 연결 하면 뚝딱 해결했지만
난 업무적으로 자바코드로 DB 연결후 엑셀 파일로 출력 해야하는 문제가 있었다.
Maria DB를 사용 하였다.
SSH 터널링 -> 포트포워딩 -> 포트포워딩된 포트를 넣어줘서 DB 연결
public class DBcon_73 { String driver = "org.mariadb.jdbc.Driver"; Connection conn = null; // DB 접속 객체선언 PreparedStatement pstmt = null; // sql 실행할 객체 선언 ResultSet rs = null; // sql 실행결과를 담을 객체 선언 private Session session; public static void main(String[] args) { DBcon_73 dbcon73 = new DBcon_73(); } public DBcon_73() { String SSHhost = ""; //SSH 호스트 String DBhost = ""; //DB 호스트 String localhost ="127.0.0.1"; //local int port = 3306; //기본 포트 try { JSch jsch = new JSch(); //ssh 로 우선 접속후 port 포워딩을 통해서 mariaDB에 붙인다 session = jsch.getSession("SSH아이디", SSHhost, 22); //SSH 의 기본 포트는 22 session.setPassword("SSH비번"); System.out.println("SSH Connection..."); session.setConfig("StrictHostKeyChecking", "no"); session.connect(); int forward_port = session.setPortForwardingL(0, localhost, 3306); //127.0.0.1/ 0으로 접근한 포트를 연결HOST/3306으로 포트포워딩 System.out.println("localhost: "+forward_port+" -> "+localhost+":"+port); Class.forName(driver); conn = DriverManager.getConnection("jdbc:mariadb://"+localhost+":"+forward_port+"/데이터베이스이름", "디비유저", "디비비번"); if (conn != null) { System.out.println("DB 접속 성공 " + conn); } } catch (JSchException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { System.out.println("드라이버 로드 실패"); } catch (SQLException e) { System.out.println("DB 접속 실패"); e.printStackTrace(); } } public void closeSSH() { session.disconnect(); } }
코드속 주석 처리로 설명이 되어있다.
난 한창 해멨으나, 쉽게 연결 가능 하다.
SSH는 연결후 close를 꼭 해줘야 한다.
728x90
반응형
'Back-end > JAVA & Spring' 카테고리의 다른 글
[메이븐] 메이븐 다운로드 및 설치(maven download) (0) | 2021.09.06 |
---|---|
[JAVA] 자바 버전 변경하기 (Java 8 -> Java 11) (0) | 2021.09.06 |
[Java] POI 정리 (0) | 2021.08.10 |
자바 이클립스에서 MariaDB 연결하기 (1) | 2021.07.13 |
JDBC- MariaDB와 Java연동 (1) | 2021.07.09 |
댓글