본문 바로가기
Log/Trouble shoot

Docker-mysql-access denied for user...(using password YES)

by RIEM 2023. 6. 7.

Error : [Docker][MySQL]Access denied for user ‘’@’172.17.0.1'(using password: YES)

nest.js에서 mysql을 sequelize로 설정한 후 어플리케이션을 실행하려는데, 이런 에러가 발생했다. mysql의 접근 권한이 없어서 발생한 문제로 보인다.

# root 유저로 접근
$ docker exec -it <container-name> mysql -uroot -p

비밀번호를 잊었을 경우?
여기서 비밀번호를 치라고 나오는데 만약 비밀번호를 잊었으면 $ docker exec <container-name> env을 치면 알 수 있다.

비밀번호를 치면 mysql로 잘 접속한다.

CREATE USER 'thursdaycurry'@'172.17.0.1' IDENTIFIED BY 'password';

GRANT ALL PRIVILEGES ON *.* TO 'thursdaycurry'@'172.17.0.1' WITH GRANT OPTION;

flush privileges;

exit
// app.module.ts
import { Module } from '@nestjs/common';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import { MarketwatcherModule } from './marketwatcher/marketwatcher.module';
import { SequelizeModule } from '@nestjs/sequelize';

@Module({
  imports: [
    SequelizeModule.forRoot({
      dialect: 'mysql',
      host: '127.0.0.1',
      port: 3306,
      username: 'thursdaycurry',
      password: 'password',
      database: 'test',
      autoLoadModels: true,
      synchronize: true,
    }),
    MarketwatcherModule,
  ],
  controllers: [AppController],
  providers: [AppService],
})
export class AppModule {}

앱 모듈에 주입하는 시퀄라이저 모듈의 config 정보에도 동일하게 username과 password를 설정해주면 잘 작동한다.

댓글