[데이터베이스] - JDBC로 우분투(리눅스)의 데이터베이스 연결하기

yeom yaloo·2023년 12월 13일
0

FISA

목록 보기
18/61
post-thumbnail

JDBC로 우분투에 깔린 DB 연결하기

[기존 로컬환경 db 연결]

1. mysql

package step01;

import java.sql.Connection;
import java.sql.DriverManager;


/* 가장 기본적인 CURD 로직 구현하기
 * JDBC API 이해하기
 * 
 *	개발 단계
 *	  - driver 로딩 -> 접속 -> sql 문장 생성 객체 생성
 *		-> sql 문장 실핼 -> 결과 활용 -> 자원 반환 
 *
 *	서버 접속 후 쓰지 않는 자원은 반환해주는 것이 좋다.
 * */
public class JDBCBasic {

    
    // mysql
	public static void main(String[] args) {
		
        // driver 로딩
		try {
			Class.forName("com.mysql.cj.jdbc.Driver");
            
            
			// 접속 - getConnection에서 예외 던지는거? -> 상위타입으로 처리 Exception
			// jdbc:db_종류://db_주소:db_포트번호/사용_데이터베이스
			Connection con =  DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/fisa", "root", "root");

			System.out.println(con2);

		} catch (Exception e) {
			e.printStackTrace();
		}

		// sql 문장 실행 객체 생성

		// sql 문장 실행

		// 결과 활용

		// 자원 반환(접속 해제) - 누락 금지

	}
}

[mysql연결]

1. ip 오픈

  • 리눅스의 mysql 설정 파일에서 외부 접속을 가능하게 ip 오픈 0.0.0.0으로 변경

2.

  • 외부에서 JDBC API를 이용해서 직접 DB에 접근하려하면 url에 해당 접근 가능 설정을 작성해준다.

3. JDBC로 우분투에 깔린 mysql에 접근

3-1. 우분투에 설치된 mysql의 접근을 위한 URL

  • DriverManager.getConnection(jdbc:db_종류://db_주소:db_포트번호/사용_데이터베이스?useSSL=false&allowPublicKeyRetrieval=true, "db 계정", "db 비밀번호")
    • jdbc:db_종류://db_주소:db_포트번호/사용_데이터베이스: mysql 벤더사가 지정한 설정값으로 데이터베이스마다 설정을 다르게 해주면 된다.
    • useSSL=false&allowPublicKeyRetrieval=true: db 버전에 따라 상이한 설정

3-2. 우분투에서 mysql 포트 포워딩 추가 작업

  • vb의 포트 포워딩 작업을 통해서 8777 포트를 3306 포트를 사용하는 mysql 포트를 매핑하겠다는 의미다.
  • JDBC의 port 번호 수정 = 포트 포워딩 해준 번호로 변경

3-3. mysql config 수정

  • vb의 포트 포워딩 작업 후 우분투를 켜서 해당 mysql의 config 파일로 접근해 vi로 해당 bind address를 변경해주어야 한다.
  1. 우분투 mysql bind address 변경
    vi로 해당 config 파일에 접근
  • sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf: 해당 config 파일로 접속해서 수정 작업 진행
  • conf 화면에서 i를 누르면 내용 추가 작성 가능
  • bind address를 0.0.0.0 로 변경 후
  • esc 버튼을 눌러 :wq!를 입력해 엔터해주면 해당 편집이 저장되고 vi에서 나갈 수 있게 된다.

저장후 나가는 방법

  • esc 누른 후 :wq! 엔터

그냥 편집기 끄는 방법

  • esc 누른 후 :q!

3-4. mysql restart

sudo service mysql restart : sudo 명령어로 해당 mysql을 다시 재시작한다.

3-5. 확인하기

sudo systemctl status mysql

[oracle 연결]

  • 오라클의 경우엔 따로 설정 파일을 열어서 해당 mysql처럼 address bind 작업을 하지 않아도 된다.

1. JDBC String URL 설정

  • Connection con = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:9998:XE", "scott", "tiger");
  • jdbc : jdbc에서 제공하는 인터페이스 사용
  • oracle:thin:@127.0.0.1:9998:XE 오라클 벤더사에서 제공하는 URL 규칙으로 벤더사마다 다 다르게 설정
    • 9998은 vb에서 포트 포워딩해서 해당 oracle port를 9998로 매핑한 포트 번호 사용
    • XE 는 oracle 버전

2. 포트 포워딩

profile
즐겁고 괴로운 개발😎

0개의 댓글