티스토리 뷰

 

서버 종료 후 재시작 하기

ctrl + C  # 서버 종료
npm start  # 서버 재시작

 

 

server를 몇 시간 동안 켜놓아 MySQL 연결이 자동 해제 된 경우, 5000번 포트가 이미 사용 중이라서 서버가 실행되지 못하는 상황

E:\dessert-recipe-server>node server.js node:events:491 throw er; // Unhandled 'error' event ^ Error: listen EADDRINUSE: address already in use :::5000 at Server.setupListenHandle [as _listen2] (node:net:1740:16) at listenInCluster (node:net:1788:12) at Server.listen (node:net:1876:7) at Function.listen (E:\dessert-recipe-server\node_modules\express\lib\application.js:635:24) at Object.<anonymous> (E:\dessert-recipe-server\server.js:79:5) at Module._compile (node:internal/modules/cjs/loader:1256:14) at Module._extensions..js (node:internal/modules/cjs/loader:1310:10) at Module.load (node:internal/modules/cjs/loader:1119:32) at Module._load (node:internal/modules/cjs/loader:960:12) at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12) Emitted 'error' event on Server instance at: at emitErrorNT (node:net:1767:8) at process.processTicksAndRejections (node:internal/process/task_queues:82:21) { code: 'EADDRINUSE', errno: -4091, syscall: 'listen', address: '::', port: 5000 } Node.js v18.16.1

 

 

 

이어서 리액트 프로젝트를 작업하려했는데 리액트 플젝 페이지에 보였던 recipe 테이블의 데이터들이 모두 사라져있었다.

내 추측컨대 MySQL과 연결해놓은지 n시간이 지나 자동으로 연결 해제가 되어서 그런 것 같다.

그래서 서버를 Ctrl+C로 끈 후 npm start를 했는데 위 에러가 뜬 것이다.

 

해결방법은 총 3가지.

 

 

해결

1. 기존 프로세스 종료

5000번 포트를 점유하고 있는 프로세스를 종료하면 다시 서버를 실행할 수 있다. 명령 프롬프트에서 다음 명령을 실행해 5000번 포트를 사용하는 프로세스를 찾는다.
 
1-1. 출력된 결과에서 PID (프로세스 ID)를 찾는다.
netstat -ano | findstr :5000

 

1-2. 다음 명령을 사용해 해당 PID 프로세스를 종료한다. (예를 들어, PID가 1234라면)

taskkill /PID 1234 /F

 

 

2. 서버 포트를 변경

- server.js에서 포트를 5000 외의 다른 포트로 설정할 수 있습니다. 예를 들어, 5001 포트를 사용하고 싶다면 다음과 같이 변경한다.

const port = process.env.PORT || 5001;

 

 

3. 재시작 후 포트 확인

E:\dessert-recipe-server>npm start
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2026/06   »
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
글 보관함