본문 바로가기
카테고리 없음

MySQL Error 145: Table is marked as crashed 오류 해결 방법

by 티끌코딩 2025. 2. 27.
반응형
MySQL Error 145: Table is marked as crashed 오류 해결 방법

MySQL 테이블이 충돌하여 손상되었을 때 발생하는 오류의 원인과 해결 방법을 알아봅니다.

1. 오류 개요

MySQL에서 특정 테이블을 조회하거나 조작할 때 다음과 같은 오류가 발생할 수 있습니다.

Error 145: Table 'database_name.table_name' is marked as crashed and should be repaired

이 오류는 MyISAM 테이블이 손상되었을 때 발생하며, InnoDB에서는 발생하지 않습니다.

2. 주요 원인

  • 비정상적인 MySQL 종료
  • 디스크 오류로 인해 테이블이 손상됨
  • MyISAM 테이블이 충돌하여 인덱스가 깨짐
  • 하드웨어 또는 서버 문제로 인해 데이터 무결성이 깨짐

3. 해결 방법

1) 테이블 복구 명령 실행

손상된 테이블을 복구하려면 다음 명령어를 실행하세요.

REPAIR TABLE table_name;

이 명령어는 손상된 인덱스를 다시 빌드하여 정상적으로 사용할 수 있도록 복구합니다.

2) myisamchk 도구를 사용한 복구

MySQL이 실행 중이라면 먼저 중지하고 다음 명령어를 실행하세요.

myisamchk -r /var/lib/mysql/database_name/table_name.MYI

이 방법은 테이블을 강제로 복구하는 데 효과적입니다.

3) MySQL 정지 후 테이블 복구

MySQL이 실행 중이라면 중지하고 복구하는 것이 좋습니다.

sudo systemctl stop mysql
myisamchk --force --recover /var/lib/mysql/database_name/*.MYI
sudo systemctl start mysql

4) 자동 복구 설정

MySQL이 충돌할 경우 자동으로 테이블을 복구하도록 설정할 수 있습니다.

[mysqld]
myisam_recover_options=FORCE,BACKUP

변경 후 MySQL을 재시작하세요.

sudo systemctl restart mysql

4. 결론

MySQL 테이블이 충돌하여 손상되었을 경우, REPAIR TABLE 또는 myisamchk 도구를 사용하여 복구할 수 있습니다. 자동 복구 설정을 적용하면 향후 동일한 문제가 발생하는 것을 방지할 수 있습니다.

MySQL 서버 오류 해결을 위한 가이드입니다.

반응형