ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • AWS EC2의 Mysql과 인텔리제이 JDBC 라이브러리
    안드로이드 스튜디오/JAVA 자바 2023. 5. 2. 13:56

    순서의 중요도보다 해당 위치에 놓여야할 것이 놓여야하는 점이 포인트. 우선 프로젝트 파일의 구성을 살펴봐야합니다. 

     

    AWS EC2의 Mysql과 인텔리제이 JDBC 라이브러리

     

    위의 사진에서 차이점은 External Libraries의 mysql.connector.java 를 추가해야합니다. 기본적인 순서는 다음과 같습니다. 해당 버전은 8.0 이상으로 통일하되,  mysql connector/j 혹은 해당 project module 에서 다운로드하여 설치 가능합니다. 

     

    AWS EC2의 Mysql과 인텔리제이 JDBC 라이브러리

     

    아래는 예시 코드입니다. try-catch 문의 예외처리를 제외하고 try 부분을 보면.

     

    JDBC 예시 파일

     

    AWS EC2의 Mysql과 인텔리제이 JDBC 라이브러리

     

     

    아래와 같이 구성되는데 1번의 드라이버 로딩은 "com.mysql.cj.jdbc.Driver"부분이며 이는 기존의 "com.mysql.jdbc.Driver"에서 버전이 업그레이드 됨에 따라 "com.mysql.cj.jdbc.Driver" 를 주로 사용하시면 됩니다.

     

    데이터베이스에 연결할 때에는 위의 구조를 따릅니다. 여기서 아래의 url, user password 의 구조를 따릅니다. 

    AWS EC2의 Mysql과 인텔리제이 JDBC 라이브러리

     

    이 녀석들을 파라미터로 모아서 아래 코드가 동작합니다.

    AWS EC2의 Mysql과 인텔리제이 JDBC 라이브러리

     

    이러면 서로 만나게 되는데 여기서 지속적인 에러가 떴습니다. 왜냐하면 기존 localhost:3306을 사용하면 문제가 없습니다만, AWS EC2의 Mysql 을 설치해서 사용하기 때문에 연결과정에서 오류가 납니다.

     

    RDS를 사용하는 방법도 있으나 "굳이"? 라는 생각이 들어서 기존 EC2 인스턴스에 Mysql 만 설치하고 사용하고 있습니다. 물론 아마존 AWS 프리티어 기간을 최대한 활용하면서 말이죠.

     

    AWS의 탄력적 IP를 사용하기에 해당 IPv4 주소를 적고, 포트번호는 보안 그룹에서 편집합니다. 인바운드 규칙과 아웃바운드 규칙을 조정해야합니다.'

     

    인바운드 규칙과 아웃바운드는 기존의 HTTP 통신을 사용했기에 이상이 없으나, 이를 TCP/IP 소켓통신을 사용하려고 하니 기존의 연결과는 차이점이 있습니다. 바로 IP주소의 인식 부분입니다.

     

    AWS EC2의 Mysql과 인텔리제이 JDBC 라이브러리

     

    누구나 접속가능한 IP주소를 입력하면 위와 같이 0.0.0.0/0 이런식으로 표시되는데, 여기에 IP주소를 4개짜리로 입력하면 주소 뒤에 /32 라는 숫자가 나오기 때문에 여기서는 이대로 두고, 맥에서 AWS EC2 로 접속하여 해결해야합니다.

     

    SSH 로 접속하여 터미널을 열어서 해당 vi 편집기에 들어가 mysql ip 관련 부분이 기존 localhost의 127.0.0.1 에서 0.0.0.0 으로 변경한 뒤에 접속하면 JDBC에 이상없이 접속됩니다. 이어서 자세히 쓰도록 하겠습니다.

     

    반응형

    댓글

Designed by Tistory.