본문 바로가기
개발일지_development diary/YSit

YSit [15] - 우분투에서 Spring (Gradle) 연동하기 & Access denied 오류 해결

by YES_developNewbie 2023. 1. 6.

프론트단에서 개발한 것과 지금까지 개발한 것을 연결시켜보고 싶어서 개발서버를 열고 많이 한다는 얘기를 많이 들어서 개발 서버를 열기로 했다. 우리는 배포를 AWS에서 할 것이기 때문에 AWS에서 인스턴스를 실행했다. 그리고 우분투로 접속을 해서 Spring에서 빌드한 jar파일을 실행시켜야 한다.

 

[ jar 파일 빌드 ]

 

JAR 빌드하기

1. 오른쪽 상단의 Gradle 탭을 클릭한다

2. Tasks의 build를 클릭하여 빌드한다.

3. build/libs의 .jar파일을 cmd로 실행해본다. 

4. 실행하면 성공 !

 

[ 서버에 jar파일 넣고 실행하기 ]

 

파일 관리를 위해서 File Zila를 다운해준다.

https://filezilla-project.org/

좌측 상단의 File을 누르고 사이트 관리자를 눌러준다

1. 새 사이트 클릭

2. AWS에서 실행하기 때문에 SFTP로 바꿔준다

3. 호스트명 입력 - 탄력적 IP 입력

4. 로그온 유형을 키파일로 변경

5. 사용자명 입력 - 보통 ubuntu / 키파일 디렉토리 지정

6. 연결 클릭

 

서버에 디렉토리를 하나 생성한 후, 아까 빌드해뒀던 build/libs의 .jar 파일을 드래그 앤 드랍한다.

 

그 후에 우분투에 접속하여 jar파일을 실행한다. 

 

nohup java -jar [ 실행 파일 ] &

명령어를 사용하면 백그라운드에서 실행될 수 있다.

 

종료하기

 

sudo kill -9 [ pid ]

 

PID 찾기

 

ps -ef | grep [ 실행한 파일명 ]

 

[ Access denied 오류 해결 ]

 

.jar 파일을 실행 시켰는데 Spring 실행까지는 되는데 Access denied 오류가 떴다. ( 까먹고 사진을 못 찍음 .. )

근데 이게 무슨 문제인가 했는데 mysql 연결 문제였다. mysql을 설치하고 거기서 연결을 시키는데 알고보니 내가 아는 연결 흐름은 우분투에서 windows의 mysql을 연결하는 줄 알았는데 Linux에서 실행을 시키는 구조였다. 그래서 mysql 연결이 안되는 이유는 비밀번호가 달랐기 때문이다. 정확히는 빌드파일에서 접속할 때 사용하는 비번이 Linux 환경의 mysql에서 맞지 않기 때문이다. 하지만 빌드과정에서 mysql과 연결이 안되면 빌드가 실패한다. 그래서 나는 일종의 꼼수지만 Windows환경의 mysql 비번과 Linux환경의 mysql 비번을 똑같이 하여 실행했다.