데이터베이스

Node.js에서 MSSQL(Tedious) 사용 중 ConnectionError: Failed to connect to localhost:1433 - connect ECONNREFUSED 오류

starshorse 2025. 9. 5. 11:58

Node.js에서 MSSQL(Tedious) 사용 중 ConnectionError: Failed to connect to localhost:1433 - connect ECONNREFUSED 오류가 발생할 때 주요 원인과 해결 방법을 아래에 정리합니다:

주요 원인

  1. SQL Server의 TCP/IP가 비활성화됨
    • SQL Server는 기본적으로 TCP/IP 프로토콜이 비활성화되어 있을 수 있습니다.
  2. 1433 포트가 열려 있지 않음 또는 잘못 설정됨
    • MSSQL은 기본적으로 1433 포트를 사용하며, 해당 포트가 열려 있지 않거나 방화벽에서 차단된 경우 연결이 거부될 수 있습니다.
  3. SQL Server 인스턴스 이름 사용 시 "SQL Server Browser" 서비스 미실행
    • 인스턴스 이름으로 연결하려면 SQL Server Browser 서비스가 실행 중이어야 하며, UDP 포트 1434도 접근 가능해야 합니다.
  4. 서버 주소 문제
    • 'localhost' 대신 실제 IP 또는 컴퓨터 이름을 사용해야 연결이 되는 경우도 있습니다.
  5. 암호화 옵션 및 광고 인증 방식 문제
    • 오래된 SQL 서버나 Node 버전에서는 암호화(encrypt) 옵션에 따라 연결이 안 되는 경우가 있음.

 

해결 방법

1. TCP/IP 활성화

  • SQL Server Configuration Manager 실행
  • "SQL Server Network Configuration" → "Protocols for MSSQLSERVER"
  • "TCP/IP"를 **Enabled(활성화)**로 설정
  • 적용 후 SQL Server 서비스 재시작

2. TCP 포트 설정

  • Configuration Manager > 프로토콜 > TCP/IP의 'IPAll' 항목
  • "TCP Dynamic Ports" = 비워둠(BLANK)
  • "TCP Port" = 1433 설정
  • 방화벽에서도 1433 포트가 허용되어야 함

3. SQL Server Browser 활성화

  • 인스턴스 이름으로 연결 시: SQL Server Browser 서비스 실행
  • UDP 1434 포트 오픈 필요

4. 서버 주소 및 인증 정보 점검

  • connection config에서 IP 주소나 컴퓨터 이름으로 테스트
  • 사용자명, 비밀번호, 데이터베이스명, 포트 등 JSON 형태로 정확히 기입
const config = {
  user: 'sa',
  password: '비밀번호',
  server: '127.0.0.1', // 또는 컴퓨터 이름
  database: 'SampleDB',
  options: {
    encrypt: true // 필요에 따라 false
  }
};

5. 암호화 및 Node 버전 호환

  • 최신 Node(v12+)에서 TLS 1.2 문제 시, encrypt 옵션 확인, 필요시 options.encrypt: false
  • 또는 node 실행 시 --tls-min-v1.0 플래그로 구버전 TLS 허용

6. 연결 테스트 및 권한 검증

  • SSMS(SQL Server Management Studio)에서 같은 정보로 연결 가능한지 테스트
  • SQL Server 인증(SQL Server Authentication) 사용 권장

참고 요약표

주요 원인접근 방법비고
TCP/IP 비활성화 Configuration Manager TCP/IP → Enabled, 서비스 재시작
포트 미설정/차단 IPAll → TCP Port=1433 방화벽 허용 필요
브라우저 서비스 미실행 서비스 실행, UDP 1434 인스턴스 이름 연결 시 필요
주소/인증 정보 문제 IP/컴퓨터명, config 점검 SSMS에서도 가능한지 확인
암호화/호환성 문제 encrypt 옵션, Node 플래그 구버전 MSSQL, 최신 Node 사용시(TLS)
 

이 방법들을 순서대로 점검하면 대부분의 ECONNREFUSED 연결 오류를 해결할 수 있습니다.

'데이터베이스' 카테고리의 다른 글

Express 4에서 MSSQL Pool을 사용하는법  (1) 2025.09.05