티스토리 뷰

반응형

프로덕션에서는 문제가 없지만

 

로컬로 테스트 할때 서버에 있는 db를 접속하려면 ssh 통해서 접속해야만 한다

 

뭐... 3306포트 오픈하던지,, 뭐 포트 숫자만 바꿔서 오픈해도 되지만

 

보안상... 하면 안된다는 거 다 알듯함.. 

(진심 오픈하고 쓰고 싶음 ㅋㅋㅋㅋ 편하긴 개편한데...)

 

ssh -N -p 포트번호 root@호스트 -L 33336:localhost:3306

이럴땐 임시적으로 포트 개방하고 쓰면 ssh 연결하는 코드 작성할 필요가 즌혀 없음!!!

 

물론 이 방법 전에 ssh로 시도 하려다가 아무리 해도 안되서 포기 후 저방법 쓰게 됨 ㅠㅠ

 

그런데 지금은 정말 ssh통해서 접속해야만 함;;

b서버에서 a서버에 있는 db를 데이터를 가져와야 하는 상황이라 ㅠㅠㅠ

(진심 포트 오픈하고 싶음)

 


이제부터 방법을 알아보자면

ssh 접속하는 모듈을 찾아봐야 하는데

후보가 tunnel-ssh, ssh2-connect, ssh2 이렇게 있는데

 

다 접속은 잘된다 ㅋㅋㅋㅋ ㅅㅂ

 

const configSSH = {
  host: '주소',
  port: '22',
  username: 'root',
  password: '비번',
  dstHost: 'localhost', //db 호스트
  dstPort: '3306' //db포트
}


tunnel(configSSH, (err, ssh) => {
  if (err) {
    often.log(err);
    resolve(err);
  }
  //db접속해서 데이터 가져오는 코드 적으면 도ㅑㅁ
});

이렇게 핵심플하다

23.3.12일 기준 최신버젼 5.0.5로 하면 안된다

물론 안되는 이유는 추측하자면 nodejs버젼이 낮아서 안될 확률이 높다

 

모듈 쓸 때 이거 유의해야합니다!!!! 어디서는 버젼별로 쓰라고 나오는데

일단 이 모듈은 유의사항이 없으므로 촉으로 버젼 낮쳐서 해보니 잘됬음 ㅅㅂ ㅠ

 

것도 모르고 최신버젼으로 해보니 tunnel is not a function 자꾸 이거 뜸 ㅅㅂ!!!!!!!!

함수 맞는데 함수 아니래 ㅅㅂ ㅈ같은 자바스크립트

 

그래서 다른 ssh모듈 써보니 접속은 잘되지만 mysql 접속을 못했음 ㅠㅠㅠ 잘 안됨 ㅅㅂ 

 


근데 ㅅㅂ 또 문제 생김....

로컬 즉 개발컴에서 테스트 하면 아주 잘됨

 

그런데...

events.js:292
      throw er; // Unhandled 'error' event
      ^

Error: listen EADDRINUSE: address already in use 127.0.0.1:3306
    at Server.setupListenHandle [as _listen2] (net.js:1313:16)
    at listenInCluster (net.js:1361:12)
    at doListen (net.js:1498:7)
    at processTicksAndRejections (internal/process/task_queues.js:85:21)
Emitted 'error' event on Server instance at:
    at emitErrorNT (net.js:1340:8)
    at processTicksAndRejections (internal/process/task_queues.js:84:21) {
  code: 'EADDRINUSE',
  errno: 'EADDRINUSE',
  syscall: 'listen',
  address: '127.0.0.1',
  port: 3306
}

실서버에서 테스트해보니 ㅅ발!!!! 이렇게 뜸....

 

여기서 알아야 할게 (사실 잘 모르지만 ㅎ) 액세스 디나이 뜨면 ssh접속이 안된거임

하지만 3306 포트 쓰고 있다고 뜨면 ssh 접속은 한거임 

 

근데 ...... b 서버나 a 서버 포트 다 3306인데????

데이터 가져올 b 서버가 저 포트 쓰고 있다고 해서 저 ㅈㄹ 난다고?????

 

진짜 이해 존ㄴ 안되는 에러임...

그래서 구글링 해보니 채택안된 답변이 하나 있던데....

포트번호 바꾸라고 하는거임 ㅅㅂ........ 

b 서버는 현재 활성된 서버라 바꾸면 ㅈ되고..

요청하는 a서버를 3307로 바꾸니....

 

잘됨......ㅠㅠ

 

진심 개발자 하기싫음 하나 해결하면 하나 안되고 해결하면 또 안되고 ㅅㅂ

해결하면 혼자만 존ㄴ 기분좋지 주변에서는 이상하게 봄 ㅋㅋㅋㅋ

 

728x90
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함