[JPA,SpringBoot, AWS] KnockKncok 개발일지 - 0107 (환경변수와 mysql 설정)

Hyebin Lee·2022년 1월 7일
0

knockknock 개발일지

목록 보기
10/29
post-custom-banner

오늘의 목표

  1. AWS에 DB 구축하기
  2. AWS에서 구축한 DB SpringBoot(KnockKnock) 와 연동하기
  3. 프로젝트 배포하기
  4. 안드로이드와 SpringBoot에서 제작한 API 연동하기

오늘의 이슈

  1. MySQL WorkBench Test Connection 오류 : unable to connect to localhost
  2. 환경변수와 cmd 명령에 대해 알아가기

1. AWS RDS로 MariaDB 생성해서 워크벤치에 연결하기

과정은 블로그를 참고하였다.
간단한 AWS RDS 데이터베이스 생성에 대한 개념을 정리해보자면 다음과 같다.

AWS RDS기초 개념

  • 엔드 포인트 : DB에 접근할 주소
  • 보안그룹: 인스턴스 생성을 요청한 IP로 한정해서 접근을 허용
    생성한 PC가 아닌 다른 PC에서 접근할 경우에는 보안그룹도 수정해야 함

MySQL Workbench

MySQL Workbench는 DB 접속이 잘 되는지 테스트가 가능한 툴이다.
AWS에서 DB를 생성한 후 set new Connection 을 통해 접속을 할 수 있다.

  • Hostname에 인스턴스의 엔드포인트, Username에 사용자 이름을 작성한다.
  • Connection Name은 관리용 별명이니 자유롭게 지정해도 무방

MySQL Workbench 오류 발생

다음과 같은 오류와 함께 RDS 커넥션을 테스트 해보려고 했던 workbench가 작동하지 않았다.
구글링 해보니까 우분투가 업데이트되면서 비밀번호가 설정되지 않아 생기는 오류 어쩌구 하던데
스택오버플로우에 나온대로 sudo mysql -u root 명령어를 실행해봤다.
그런데 아니나 다를까,, 나는 cmd 명령어 입력에 공포증이 있다.. 왜냐면 뭐만하면 ''은 외부, 혹은 내부 명령이 아닙니다 어쩌구 오류가 나고 실행이 안되었기 때문이다.
여태까지 이런 오류를 많이 접했는데 매번 제대로 해결도 못하고 어떻게 넘겼는지 기억은 안나지만 여튼 어떻게든 넘겼었다.
그런데 오늘은 이에 대한 명확한 해결책을 알게되었다.
그래,,, 진행은 더디지만 하루하루 뭔가를 배워가고 알아간다는 것에 초점을 두자... 😇

환경변수 설정과 cmd 명령

cmd 명령에서 ''은 외부, 혹은 내부 명령이 아닙니다 어쩌구 오류가 나는 이유는 ' ' 안에 제시된 명령어 (실행exe파일) 이 들어있는 경로를 명령프롬프트에서 제대로 찾아내지 못했기 때문이다.
따라서 이와 같은 경우에는 고급 -> 환경변수 설정에서 해당 경로를 PATH 경로에 추가해서 명령프롬프트가 제대로 경로를 찾아가 명령어를 수행할 수 있게 설정해주어야 한다.

따라서 당연히 실행하고자 하는 명령어(파일)의 경로를 환경변수에 추가하면 된다
환경변수 설정 방법은 구글링하면 수도 없이 많이 나오니 따로 정리는 안할 것이다.
실행하고자 하는 명령어(파일)의 경로는 구글링의 경로와 다를 수 있으니 미리 구글링해서 나온 경로를 방문해서 해당 파일이 있는지부터 먼저 확인하는 것이 중요하다.
만약에 없다면 아예 해당 파일 설치가 안된 것이니 설치부터 알아보아야 한다.
또한 환경변수를 추가하고 곧장 명령프롬프트에 명령하면 작동 안한다. 반드시 재부팅 후에 적용된다는 사실을 알아야 한다.

자 이제 환경변수에 mysql이 있는 위치를 추가시켜줬고 cmd도 mysql 명령어를 제대로 인식한다. 드디어 sudo mysql -u root 명령어를 실행했다.

MySQL 비밀번호 분실해서 다시 깔고 비밀번호도 새로 설정하고 이제 연결도 잘되는데..
이상하게 AWS 데이터베이스에만 접속이 안된다..

다음과 같은 오류가 계속 나는 중 ㅠㅠㅠㅠㅠ

💃🎆🌟unable to connect to localhost 오류 해결

오류의 원인은 보안그룹 접근 제한에 있었다.
보안그룹 접근 인바운드 규칙에서 사용자 지정 TCP 에서 port 범위 지정이 필요하다.

먼저 접근하고자 하는 DB(rds) 인스턴스의 보안그룹에 들어간다.

인바운드 규칙 편집을 누른 뒤


규칙 추가 버튼으로 사용자 지정 TCP - 지정할 port 범위(3306) - anywhere-IPV4 로 지정한 후 저장한다

며칠째 나를 괴롭히던 문제가 드디어 해결되었다💃💃😭

오늘은 본가 내려와서 많이 쉬기도 했고 개발에 전념하지 못했다.
내일은 아침 일찍 일어나서 카페가서 나머지 부분들 클리어하고 반드시 안드로이드 - 스프링부트에서 내가 만든 REST API 연동까지 해 볼 생각이다.
이혜빈 파이팅 🤸‍♀️❣

post-custom-banner

0개의 댓글