[Node] AggregateError [ECONNREFUSED]: 에러

안민선·2025년 5월 12일
0

Node.js 스터디

목록 보기
3/3

프로젝트와 mysql db를 연결하는 과정에서 AggregateError [ECONNREFUSED]: 이런에러가 발생했다. 지금까지 mysql2와 dotenv 설치하고 연결까지 해서 npm start를 하면 안되는 상황이다.

찾아보니 mysql 연결을 실패했다는 뜻이다. => ECONNREFUSED(연결 거부됨)

MySQL 연결 실패 :  AggregateError [ECONNREFUSED]: 
    at internalConnectMultiple (node:net:1118:18)
    at afterConnectMultiple (node:net:1685:7) {
  code: 'ECONNREFUSED',
  fatal: true,
  [errors]: [
    Error: connect ECONNREFUSED ::1:3306
        at createConnectionError (node:net:1648:14)
        at afterConnectMultiple (node:net:1678:16) {
      errno: -4078,
      code: 'ECONNREFUSED',
      syscall: 'connect',
      address: '::1',
      port: 3306
    },
    Error: connect ECONNREFUSED 127.0.0.1:3306
        at createConnectionError (node:net:1648:14)
        at afterConnectMultiple (node:net:1678:16) {
      errno: -4078,
      code: 'ECONNREFUSED',
      syscall: 'connect',
      address: '127.0.0.1',
      port: 3306
    }
  ]
}

전체 에러 메시지를 보면, 다음과 같은 로그가 나온다.

connect ECONNREFUSED ::1:3306
connect ECONNREFUSED 127.0.0.1:3306

node.js가 로컬(127.0.0.1 또는 ::1)dptj 3306포트로 mysql에 접속 시도했지만, mysql이 거기에 없거나 꺼져 있어서 연결이 거부되었다는 뜻이다.

해결방법으로
cmd창에 들어가서 netstat -ano | findstr :3306 명령어를 입력하면 어디에서 3306을 사용하고 있는지 나온다.
나는 TCP 172.30.0.225:51807 172.30.0.72:3306 ESTABLISHED 9776 이렇게 나왔는데,

  • 로컬 주소: 172.30.0.225 → 당신의 컴퓨터
  • 원격 주소: 172.30.0.72:3306 → 다른 네트워크 상의 MySQL 서버
  • ESTABLISHED → 현재 연결 중
  • PID 9776 → 이 연결을 사용하는 프로그램

나의 컴퓨터에서는 localhost:3306이 아니라, 다른 컴퓨터(172.30.72)의 mysql 서버에 접속 중이라는 뜻이다.

따라서, 다른 pc(172.30.72)로 사용할 것이라면

MYSQL_HOST=172.30.0.72
MYSQL_PORT=3306
MYSQL_USER=계정명
MYSQL_PASSWORD=비밀번호
MYSQL_DATABASE=데이터베이스명

로 하면된다.

profile
사람들의 일상에 가치를 더하는 개발자🐥

0개의 댓글