운영 서버 DB에 터미널로 파일 업로드 하기

ZEDY·2023년 12월 17일
0

[백엔드] Spring Boot

목록 보기
22/27

시간 없응께 간단히만 작성해보겟수다

운영DB에 접근

  1. AWS에 접속하여, 운영DB 보안그룹 인바운드 규칙 편집
  • 인바운드 규칙 편집하기
  • 내 로컬 IP 주소 추가해준다
    1) SSH
    2) MYSQL/Aurora
  • 규칙 저장
  1. ssh로 접속하여 DB계정 권한 수정
    1) 키 파일 이용해 터미널 접속
    - Host
    - HostName
    - User
    - Pem Key File
    여기서 HostName은 서버 주소다.
    ssh -i {pem} "user"@"hostname"
    아마 이 명령어일테다.. 해당 관련 게시물이 있으니 그걸 참고하면 될 듯.
    2) root 권한 획득
    sudo su
    3) MySQL 접속, 스키마 사용
    mysql
    use mysql
    4) 계정 권한 추가
    grant all privileges on "." to '이름'@'{IP}' identified by '{password}';
    - DB 비번 알아야함
    - User 이름 알아야 함
    5) 권한 적용
    flush privileges; 이케 하면 된당.

그러면 운영 서버, 디비에 접근이 가능하다.
확인 방법 : ssh 직접 접근해보면 된다. 혹은 디비 들어가보기!

그 다음에는 서버에서 내가 올릴 디비 폴더 위치가 어디인지 찾아야 한다.

나같은 경우에는 터미널로 서버에 들어가 직접 들어가보면서 폴더를 파악했다.
진짜.. 후..~^^

암튼 cd ls 들락날락하면 어케 발견한다.
(인수인계가 제대로 안된 문제임.)

나같은 경우는 기존 홈 디렉토리가 아닌 요상한 디렉토리까지 들어가봤는데 거기에 뙇 있었다.. 왕우

암튼 폴더 위치를 찾았다면 경로를 알아야 한다.

Remote 서버 디렉토리 경로 알기

만약 서버 폴더에 직접 들어갔다면 거기서 pwd를 입력하면 경로가 나온다. 이거 잘 복사하기

그런다음 ssh로 접속한 서버 터미널이 아닌, 로컬 터미널로 돌아온다.

로컬 파일을 Remote 서버에 올리기

이거를 위해 쓴당..ㅎ

명령어는 다음과 같다.

scp -i "키파일" {로컬에 있는 로컬 파일 경로} {Remote 서버 호스트 이름}@{서버주소}:{서버 폴더 경로}

여기서 진짜 고생 많이 했다....ㅠ

Trouble Shooting

내가 경험한 오류만 100개 넘는 듯.. 그 중에서도 유의미한 그리고 놓치기 쉬운 오류에 대해 해결방법을 공유하고자 한다.

1. scp 명령어 입력시 Permission denied (publickey) scp: Connection closed 오류가 뜨는 경우

=> 해당 키 파일로 접속을 허용하지 않는 유저인 경우이다.
나 같은 경우는
scp -i "키파일" {로컬에 있는 로컬 파일 경로} {Remote 서버 호스트 이름}@{서버주소}:{서버 폴더 경로}
여기서 Remote 서버 호스트 이름을 ubuntu로 해서 아예 모든 권한이 있는 유저로 접속해서 이 문제를 해결했다.

2. 서버 폴더 경로가 없다고 뜨는 경우 : scp: dest open "{폴더 경로}": No such file or directory

=> 폴더 경로가 이상한 경우이다.
나는 폴더 경로가 ~/ : 이런 식으로 앞에 물결표시를 붙이고 폴더 경로를 잡아줬었는데, 여기서 ~를 빼고 아예 절대경로를 작성해서 이 문제를 해결했다.

3. ssh: connect to host {주소} port 22: Connection timed out lost connection

=> AWS에서 권한을 부여했는지, 그런다음에 DB 접근 권한 부여가 제대로 되었는지 확인해야한다.(맨 위에)

정리하면서 느낀 점

  • 폴더 경로가 맞는가?
  • 터미널이 지금 어디인가? 나는 서버에서 자꾸 로컬꺼를 찾고 있어서 이슈가 있었다..(푸흡,,)
  • 해당 키파일로 접근 가능한가?
  • 정보를 잘 알고 있는가?
    - Hostname
    • IP 주소
    • User
    • Host
  • 내가 권한을 갖고 있는가?

이 범위 안에서 모든 이슈가 발생했고, 해결했다.

평소에 AWS 공부를 좀 해놔야겠다. 서버에 대해 알아야겠다. 그것도 잘..ㅠ

profile
Spring Boot 백엔드 주니어 개발자

0개의 댓글