환경변수 .env 와 mySQL 세팅시 겪었던 트러블슈팅

2025. 6. 25. 22:59·Deep Dives/문제 해결 (Troubleshooting)
전에 프로젝트 할때도 이런 문제를 겪었었는데
이번에도 한번더 겪어서 이렇게 글로 작성 해두는게
좋을것같아서 작성해둡니다!


1. 환경변수(.env) 적용이 안 되는 문제

증상

  • DB 연결 시 Access denied for user ''@'localhost' (using password: NO) 오류 발생
  • 콘솔에 출력되는 환경변수 값이 undefined 또는 빈 값

원인

  • .env 파일이 프로젝트 루트에 없거나 위치가 잘못됨 (저는 이부분도 잘못 되어있었습니다.)
  • .env 파일명이 .env.txt 등으로 잘못 저장됨
  • @nestjs/config 모듈 미적용 
    .env 파일을 읽으려면 하단 과같이 nestjs 에서 권장하는 라이브러리르 다운로드 해서 아래와 같이 추가해넣어주시거나
    node.js 에서 제공하는 패키지인 npm install dotenv 한 후 상단에 dotenv.config()로해결해주시면 됩니다

    저는 nestjs 에서 권장하는 ConfigModule 을 설치했습니다.
@Module({
  imports: [
    ConfigModule.forRoot(), //이부분 추가
    TypeOrmModule.forRoot({
      type: 'mysql',
      host: process.env.DB_HOST,
      port: process.env.DB_PORT ? Number(process.env.DB_PORT) : undefined,
      username: process.env.DB_USERNAME,
      password: process.env.DB_PASSWORD,
      database: process.env.DB_DATABASE,
      entities: [__dirname + '/**/*.entity{.ts,.js}'],
      synchronize: true, //dev 환경에서만 사용
      
    }),
  • 서버 재시작안함


해결 방법

  1. 프로젝트 루트(즉, package.json 파일이 있는 폴더)에 .env 파일 생성
  2. .env 파일에 DB 정보를 정확히 입력 (예: DB_HOST=localhost, DB_USER=root, DB_PASS=your_password, DB_NAME=your_database)
  3. @nestjs/config 모듈 설치 및 AppModule에 적용
  4. 서버를 완전히 재시작
  5. 환경변수 값이 정상적으로 로드되는지 로그로 확인

2. NoConnectionOptionError: Option "database" is not set 오류

증상

  • NoConnectionOptionError: Option "database" is not set in your connection options 오류 발생

원인

  • .env 파일에 DB_NAME 항목이 없거나 오타가 있음

해결 방법

  • .env 파일에 DB_NAME=your_database_name이 정확히 포함되어 있는지 확인
.env 에는

 

 DB_DATABASE=smartshop​
으로 되어있고

app.module 에는
database: process.env.DB_NAME

으로 되어있는 간단한 상황 . 일치 시켜줍니다.

 


3. Unknown database 'smartshop' 오류

smartshop 은 제 데이터베이스 이름입니다

증상

  • Error: Unknown database 'smartshop' 오류 발생

원인

  • MySQL 서버에 해당 이름의 데이터베이스가 존재하지 않음

해결 방법

  1. MySQL에 접속 후 데이터베이스 생성
  2. sql
    복사
    CREATE DATABASE smartshop;

.env 파일의 DB_NAME 값과 실제 생성한 데이터베이스 이름이 일치하는지 확인


이건 MySQL 쿼리생성 해서 저 부분을 붙여 넣기 해주시면 되고 smartshop 이 아닌 여러분들 데이터 베이스 이름 넣어주시면 됩니다.

4. MySQL Workbench 관련 chcp, WMI, Region Settings 오류

증상

MYSQL WORKBENCH could not acquire management access for administration
  • Workbench 실행 시 "Could not acquire management access for administration" 등의 chcp, WMI 관련 오류
  • 윈도우 Region Settings에서 Beta UTF-8 관련 문제 발생

원인 및 해결 방법

  • 환경변수 Path에 C:\Windows\System32가 없으면 추가 후 PC 재부팅
  • Region Settings에서 Beta UTF-8 옵션을 해제하고 다시 적용 ( 저는 이게 되었습니다 )
  • MySQL Workbench를 관리자 권한으로 실행
  • WMI 서비스가 꺼져 있다면 시작

    참고 : 스택오버플로우

마무리

대부분의 문제는 다음 사항을 점검하면 해결됩니다.

  • .env 파일 위치 및 내용 확인
  • 환경변수 값이 잘 적용됐는지 로그로 확인
  • MySQL 서버 및 데이터베이스 존재 여부 확인
  • 윈도우 시스템 환경변수 및 권한 설정 확인

문제가 발생하면 위 순서대로 점검하는 것을 추천합니다.

추가로 다루었으면 하는 트러블슈팅 이슈가 있으면 댓글로 알려주세요!

'Deep Dives > 문제 해결 (Troubleshooting)' 카테고리의 다른 글

node xx.js 가 실행되지 않은 이유 트러블 슈팅  (0) 2025.01.15
공연 예매 사이트 트러블 슈팅  (2) 2024.11.01
'Deep Dives/문제 해결 (Troubleshooting)' 카테고리의 다른 글
  • node xx.js 가 실행되지 않은 이유 트러블 슈팅
  • 공연 예매 사이트 트러블 슈팅
Jcob.moon
Jcob.moon
반가워요~ 하루하루 꾸준히 코딩 작성하는 곳입니다 !!
  • Jcob.moon
    Pixelated Thoughts
    Jcob.moon
  • 전체
    오늘
    어제
    • HelloWorld (174)
      • Daily Logs (123)
        • TIL (Today I Learned) (64)
        • Algorithm Practice (55)
        • Dev Book Notes (4)
      • Deep Dives (36)
        • 문제 해결 (Troubleshooting) (3)
        • CS Fundamentals (22)
        • Career Prep (4)
        • Technical Notes (7)
      • Project Log (7)
      • Any (3)
      • Cooperation (4)
        • Github (2)
        • Conventions (1)
        • Git (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.3
Jcob.moon
환경변수 .env 와 mySQL 세팅시 겪었던 트러블슈팅
상단으로

티스토리툴바