DB가 연결되지 않는다... 연결시간 초과로 인한 오류가 발생했다.
아주 이것저것 구글링을 통한 삽질을 많이 했다.
워크벤치를 이용하면 sever status로 들어가 현재 Running상태가 맞는지 확인했지만, 동작하고 있었다.
window + r 키로 "services.msc"에 들어가 MySQL80을 재실행 해주었다.
그래도 여전히 같은 에러가 발생했다. 내가 처음 NestJS와 TypeORM을 사용해서 코드 로직적인 문제인가? 다른 여러 포스팅의 코드들을 참고했지만 크게 다을 것이 없었다.
import { Module } from '@nestjs/common';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import { CatsModule } from './cats/cats.module';
import { TypeOrmModule } from '@nestjs/typeorm';
import { ConfigModule } from '@nestjs/config';
import { Cat } from './cats/entity/cats.entity';
@Module({
imports: [
ConfigModule.forRoot(),
TypeOrmModule.forRoot({
type: 'mysql',
host: process.env.DB_HOST,
port: parseInt(process.env.PORT),
username: process.env.DB_USER,
password: process.env.DB_PASSWORD,
database: process.env.DB_NAME,
entities: [Cat],
synchronize: false,
}),
CatsModule,
],
controllers: [AppController],
providers: [AppService],
})
export class AppModule {}
synchronize옵션은 개발환경에서 DB의 스키마를 서버를 열때 자동생성해 주는 옵션이라서 배포환경에서 갑자기 스키마가 바뀔때 에러가 발생하게 되는데 이를 방지하기 위해서 false로 두라는 것이었고, 실질적으로 내 에러와는 상관이 없었다.
npm uni mysql2 --save
npm i mysql --save
I have just removed the port:3306, now it's working
나는 스텍오버플로우의 위의 답변에서 큰 힌트를 얻었다.
port:3306❗❗❗ 그래 맞아 MySQL 기본 포트가 3306번이지... 내 .env파일을 뒤져보니 포트번호가 3000번이더라..
평소에 환경변수의 포트번호는 서버를 열때 쓰는 포트번호를 등록하기 때문에 생각하고 있지 못했다.
내 자신의 허접한 실수 때문에 이렇게 3시간에 가깝게 삽질을 하다니 어후 부끄러울 따름이다. .env에 DB의 포트번호는 DB_PORT로 설정해야 겠다.
모두 키의 네이밍을 조심하자...