Computer >> 컴퓨터 >  >> 문제 해결 >> Windows 오류

XAMPP 'MySQL이 예기치 않게 종료되었습니다' 오류 완벽 해결 가이드

XAMPP 웹 서버 제어판을 통해 MySQL 서버를 시작하려고 할 때 'Error: MySQL shutdown unexpectedly'(MySQL이 예기치 않게 종료되었습니다) 오류 메시지가 표시되는 사용자들이 있습니다. 이 문제는 컴퓨터에 XAMPP를 재설치한 후에 나타나는 경우도 많습니다. 주된 원인은 MySQL 파일이 손상되었거나 깨진 것으로, 이 경우 mysql 디렉터리에 포함된 backup(백업) 폴더를 활용해야 합니다. 이 글에서는 해당 오류를 해결하는 전 과정을 단계별로 자세히 안내해 드립니다.

XAMPP  MySQL이 예기치 않게 종료되었습니다  오류 완벽 해결 가이드

XAMPP는 편리하고 사용하기 쉬운 웹 서버 환경을 제공하지만, localhost 연결 거부 오류 등 몇 가지 알려진 문제점도 함께 가지고 있습니다. 많은 사용자가 이 오류를 접하면 데이터베이스 자체가 손상되었다고 생각하지만, 실제로는 그렇지 않은 경우가 대부분입니다. 데이터를 잃어버릴 걱정 없이 비교적 간단한 방법으로 문제를 해결할 수 있습니다.

인터넷에는 mysql 디렉터리 내의 ibdata1 파일을 삭제하라는 해결책도 돌아다니는데, 주의가 필요합니다. ibdata1 파일은 InnoDB 스토리지 엔진의 시스템 테이블스페이스 역할을 하는 중요한 파일입니다. 이 파일을 삭제하면 일부 경우에는 문제가 해결될 수 있지만, 데이터베이스 전체를 사용할 수 없게 만들 가능성도 매우 높습니다. 따라서 저장된 데이터가 더 이상 필요 없는 특수한 상황이 아니라면 삭제는 권장하지 않습니다.

이 문제를 해결하는 핵심 방법은 mysql 디렉터리의 backup 폴더를 이용해 data 폴더의 내용을 교체하는 것입니다. 또한 오류 발생 전에 MySQL 서비스가 이미 실행 중이었다면 그것이 원인일 수도 있으므로, 이 경우 서비스를 중지한 후 문제가 해결되는지 확인해야 합니다. 지금부터 각 해결 방법을 하나씩 살펴보겠습니다.

방법 1: MySQL 백업 폴더 활용하기

'MySQL이 예기치 않게 종료되었습니다' 오류가 발생했다면, mysql 디렉터리의 backup 폴더에 저장된 백업 파일을 활용하는 것이 가장 확실한 방법입니다. 이 폴더는 XAMPP에 기본적으로 포함되어 있으며, 진행 과정도 비교적 간단합니다. 작업을 시작하기 전에 혹시 모를 상황에 대비해 데이터베이스를 미리 백업해 두는 것이 좋습니다.

이 방법의 원리는 mysql 디렉터리 안의 data 폴더 내용을 backup 폴더의 내용으로 교체하는 것입니다. 이 과정에서 기존 데이터가 사라지지 않으므로 안심하고 진행하셔도 됩니다. 아래 순서대로 따라 해 보세요.

  1. 먼저 XAMPP 웹 서버를 완전히 종료합니다.
  2. 웹 서버를 종료한 후 XAMPP가 설치된 폴더로 이동합니다. 기본 설치 경로는 C:\xampp입니다.XAMPP  MySQL이 예기치 않게 종료되었습니다  오류 완벽 해결 가이드
  3. xampp 폴더 안에서 mysql 폴더를 엽니다.XAMPP  MySQL이 예기치 않게 종료되었습니다  오류 완벽 해결 가이드
  4. mysql 폴더에서 data 폴더를 찾아 이름을 data_old로 변경합니다.
  5. 그다음 mysql 디렉터리에서 마우스 오른쪽 버튼을 클릭하고 새로 만들기 > 폴더를 선택해 새 폴더를 생성한 뒤, 이름을 data로 지정합니다.
  6. data 폴더 생성 후 backup 폴더를 열어 그 안의 내용 전체를 복사하여 새로 만든 data 폴더에 붙여넣습니다.
  7. 이제 data_old 폴더로 돌아가 여기에 있는 데이터베이스 폴더들을 새 data 폴더로 복사합니다.

참고: data_old 폴더에서 mysql, performance_schema, phpmyadmin 폴더는 건너뛰고 복사하지 마세요.

XAMPP  MySQL이 예기치 않게 종료되었습니다  오류 완벽 해결 가이드
  1. 복사가 끝나면 data_old 폴더에 있는 ibdata1 파일을 복사하여 새 data 폴더 안의 동일한 파일을 덮어씁니다.
  2. 모든 과정이 완료되면 XAMPP를 관리자 권한으로 실행합니다. XAMPP 제어판이 열리면 MySQL 서버를 시작해 문제가 해결되었는지 확인합니다.

방법 2: 셸(Shell)로 MySQL 데이터베이스 복구하기

위 방법 외에도 XAMPP 제어판에 내장된 Shell을 이용해 MySQL 서버를 복구하는 방법을 시도해 볼 수 있습니다. 명령줄 방식을 선호하는 분들에게 적합한 해결책입니다. 먼저 셸을 통해 MySQL 서버를 시작한 다음, 다른 셸 창에서 데이터베이스를 복구하는 방식입니다. 아래 지침을 따르세요.

  1. XAMPP 제어판을 실행합니다.
  2. 제어판에서 Shell 버튼을 클릭해 셸 창을 엽니다.XAMPP  MySQL이 예기치 않게 종료되었습니다  오류 완벽 해결 가이드
  3. 셸이 열리면 아래 명령어를 입력해 MySQL을 시작합니다.
    mysqld --console --skip-grant-tables --skip-external-locking
  4. 이후 제어판에서 새로운 셸 창을 하나 더 엽니다.
  5. 새 셸 창에 아래 명령어를 입력해 데이터베이스를 복구합니다.
    mysqlcheck -r --databases mysql --use-frm
  6. 복구가 완료되면 첫 번째 셸 창에서 MySQL을 중지하고 두 셸 창을 모두 닫습니다.
  7. 마지막으로 MySQL을 다시 시작해 문제가 계속되는지 확인합니다.

방법 3: MySQL 서비스 중지하기

경우에 따라 MySQL 서비스 자체가 원인이 되는 경우도 있습니다. XAMPP 제어판을 통해 MySQL 서버를 시작하기 전에 Windows의 MySQL 서비스가 이미 실행 중이라면 충돌이 발생할 수 있습니다. 이럴 때는 Windows 서비스 창에서 MySQL 서비스를 중지하면 됩니다. 시스템에서 실행 중인 서비스는 오작동 시 다양한 문제를 일으킬 수 있지만, 서비스를 중지하는 것만으로 간단히 해결되므로 크게 걱정할 필요는 없습니다. 아래 순서대로 진행하세요.

  1. 키보드에서 Windows 키 + R을 눌러 실행(Run) 대화 상자를 엽니다.
  2. 실행 창에 services.msc를 입력하고 Enter 키를 누릅니다.XAMPP  MySQL이 예기치 않게 종료되었습니다  오류 완벽 해결 가이드
  3. 열린 서비스 창에서 시스템에 등록된 모든 서비스 목록을 확인할 수 있습니다.
  4. 목록에서 MySQL 서비스를 찾아 마우스 오른쪽 버튼으로 클릭한 뒤, 드롭다운 메뉴에서 중지(Stop)를 선택합니다.
  5. 또는 MySQL 서비스를 클릭해 선택한 후 좌측의 중지 버튼을 눌러도 됩니다.XAMPP  MySQL이 예기치 않게 종료되었습니다  오류 완벽 해결 가이드
  6. 서비스가 완전히 중지될 때까지 기다린 후, XAMPP 제어판에서 MySQL 서버를 직접 시작해 문제가 해결되었는지 확인합니다.

방법 4: 클라이언트 및 서버 포트 변경하기

MySQL 서버가 사용하는 포트가 문제의 원인일 수도 있습니다. MySQL이 사용하려는 포트를 다른 서비스가 이미 점유하고 있거나, 해당 포트가 시스템에서 차단되어 있는 경우 이런 상황이 발생합니다. 이 문제를 해결하려면 my.ini 파일에서 클라이언트와 서버 포트를 변경해야 합니다. 아래 지침을 참고하세요.

  1. Windows 탐색기를 열고 xampp 설치 디렉터리로 이동합니다.XAMPP  MySQL이 예기치 않게 종료되었습니다  오류 완벽 해결 가이드
  2. xampp 폴더 안에서 mysql > bin 경로로 들어갑니다.
  3. bin 폴더에서 my.ini 파일을 메모장으로 엽니다. 파일을 마우스 오른쪽 버튼으로 클릭한 후 연결 프로그램 > 메모장을 선택하면 됩니다.
  4. my.ini 파일이 열리면 아래 이미지와 같이 clientserver 포트 설정 부분을 찾아 값을 변경합니다.XAMPP  MySQL이 예기치 않게 종료되었습니다  오류 완벽 해결 가이드
  5. 파일을 저장한 후 XAMPP를 다시 실행합니다.
  6. 마지막으로 MySQL 서버를 시작해 오류가 사라졌는지 확인합니다.