"MySQL shutdown unexpectedly" 에러)이 발생할 때, 주로  C:\xampp\mysql\data  폴더에 있는 특정 임시/로그 파일들을 지워주면 해결됩니다.

지워야 할 파일들은 다음과 같습니다:

🗑️ 지워도 안전한 임시/로그 파일들

경로:  C:\xampp\mysql\data

  1. mysql.pid
    • 역할: MySQL이 실행 중일 때 프로세스 ID를 저장하는 파일입니다.
    • 이유: 간혹 멈출 때 이 파일이 삭제되지 않고 남아있으면, XAMPP는 MySQL이 이미 켜져 있다고 착각하여 실행을 거부합니다. 가장 먼저 확인하고 지워야 할 파일입니다.
  2. aria_log_control
    • 역할: 내부 스토리지 엔진의 로그 제어 파일입니다.
    • 이유: 이 파일이 꼬여서 실행이 안 되는 경우가 매우 잦습니다. 삭제해도 MySQL 시작 시 자동으로 새로 생성되므로 안전하게 지우셔도 됩니다.
  3. ib_logfile0    ib_logfile1
    • 역할: 트랜잭션 복구 로그 파일입니다.
    • 이유: 로그가 꼬였을 때 시작을 방해합니다. 지운 후 실행하면 MySQL이 초기화 과정을 거치며 새로 만들어냅니다.

🚨 절대 지우면 안 되는 파일 (주의)

  • ibdata1 : 이 파일은 실제 데이터베이스 테이블의 데이터와 인덱스가 저장되는 핵심 파일입니다. 이 파일을 지우면 그동안 작업하신 DB 데이터가 모두 날아가므로 절대 삭제하시면 안 됩니다.
  • 기타 폴더들 ( mysql ,  phpmyadmin ,  test  및 직접 만든 DB 이름의 폴더들)

💡 요약: 해결 순서

  1. XAMPP Control Panel을 Quit 버튼을 눌러 완전히 종료합니다. (우측 하단 트레이 아이콘에서도 종료)
  2. C:\xampp\mysql\data  폴더로 이동합니다.
  3. mysql.pid ,  aria_log_control ,  ib_logfile0 ,  ib_logfile1  파일이 보인다면 삭제합니다. (혹시 불안하시다면 삭제 대신 바탕화면 같은 다른 곳에 잘라내기로 옮겨두셔도 됩니다.)
  4. XAMPP Control Panel을 다시 켜고 MySQL의 [Start] 버튼을 눌러 정상적으로 켜지는지 확인합니다.

--------

로그 파일들을 지워도 켜지지 않는다면, 안타깝게도 MySQL의 핵심 시스템 파일 자체가 손상된 상태입니다. (갑작스러운 컴퓨터 종료 등의 이유로 흔하게 발생합니다.)

이럴 때는 XAMPP가 기본적으로 가지고 있는 백업(backup) 폴더를 이용해 고장난 시스템 파일만 새것으로 교체하는 방법이 가장 확실합니다.

현재 작업 환경을 확인해보니  xcard_db ,  xslide_db ,  xslide_site_db ,  xzine_db  등 중요한 데이터베이스들이 있습니다. 이 데이터들을 그대로 살리면서 복구하는 방법을 순서대로 안내해 드리겠습니다. 천천히 따라해 보세요!

🛠️ 데이터 손실 없는 확실한 복구 방법

  1. XAMPP 종료 XAMPP Control Panel을 완전히 종료합니다. (우측 하단 트레이 아이콘에서도 우클릭 후 Quit)

  2. 기존 폴더 이름 변경 (안전 장치)

    • C:\xampp\mysql  폴더로 이동합니다.
    • 기존의  data  폴더 이름을 ** data_old **로 변경합니다.
  3. 새로운 data 폴더 생성 및 기본 파일 채우기

    • 동일한 위치( C:\xampp\mysql )에 ** data **라는 이름으로 새 폴더를 만듭니다.
    • C:\xampp\mysql\backup  폴더 안으로 들어갑니다.
    • backup  폴더 안에 있는 모든 파일과 폴더를 복사하여, 방금 새로 만든  data  폴더에 붙여넣습니다.
  4. 내 데이터베이스 복원하기 (핵심)

    • 아까 이름을 바꿔둔  data_old  폴더로 들어갑니다.
    • 아래 항목들만 선택해서 복사합니다.
      • 📁  xcard_db
      • 📁  xslide_db
      • 📁  xslide_site_db
      • 📁  xzine_db
      • 📄  ibdata1  (가장 중요! 용량이 큰 파일입니다)

    ⚠️ 주의:  mysql ,  phpmyadmin ,  performance_schema ,  test  폴더는 절대 복사하지 마세요!

  5. 덮어쓰기

    • 복사한 파일과 폴더들을 새롭게 만든  data  폴더 안에 붙여넣습니다.
    • ibdata1  파일이 이미 있다고 나오면 **"대상 폴더의 파일 덮어쓰기"**를 선택합니다.
  6. 완료 및 실행

    • XAMPP Control Panel을 다시 켜고 MySQL의 [Start] 버튼을 눌러봅니다.