피드로 돌아가기
How to Reset Your MySQL Root Password on Ubuntu (When Nothing Works)
Dev.toDev.to
Database

Init-file 방식을 통한 MySQL Root 권한 복구 및 인증 구조 최적화

How to Reset Your MySQL Root Password on Ubuntu (When Nothing Works)

Mohamed Idris2026년 5월 1일6beginner

Context

Laravel 애플리케이션의 DB 연결 중 SQLSTATE[HY000] [1045] Access denied 에러 발생. 기존 Ubuntu 환경의 Socket Authentication 방식에서 Password Authentication으로 전환되며 root 계정 접근 권한을 상실한 상황.

Technical Solution

  • --init-file 옵션을 활용한 MySQL 부팅 시점의 권한 강제 갱신 구조 채택
  • 임시 SQL 파일을 생성하여 ALTER USERFLUSH PRIVILEGES 명령어를 실행하는 자동화 셸 스크립트 구현
  • chmod 600 권한 설정을 통한 임시 초기화 파일의 보안 무결성 확보
  • ~/.my.cnf 설정 파일 도입을 통한 CLI 접근 시 Password Prompt 제거 및 사용자 편의성 증대
  • Least Privilege 원칙에 기반하여 root 계정 대신 특정 DB 전용 Application User 생성 및 권한 분리 설계

- root 계정 분실 시 `--skip-grant-tables` 대신 `--init-file`을 사용하여 보안 리스크 최소화 - 개발 환경의 편의성을 위해 `~/.my.cnf` 파일을 생성하고 권한을 600으로 제한하여 운영 - 운영 환경에서는 root 계정을 앱에 직접 연결하지 말고 전용 User를 생성하여 권한 범위 제한

원문 읽기