MySQL 오류 · 3 min read · Feb 06, 2026

[수정됨] MySQL 오류: '테이블의 스토리지 엔진이 수리를 지원하지 않습니다'

[수정됨] MySQL 오류: '테이블의 스토리지 엔진이 수리를 지원하지 않습니다' 1

MySQL은 손상된 테이블과 데이터베이스를 수리하기 위한 다양한 유틸리티와 명령을 제공합니다. 그러나 일부 명령 및 유틸리티는 특정 검색 엔진(MyISAM 또는 InnoDB)에서 생성된 테이블과 데이터베이스 수리를 지원합니다. 특정 스토리지 엔진과 호환되지 않는 명령이나 유틸리티를 사용하여 테이블을 수리하려고 하면 오류가 발생하고 테이블 수리에 실패할 수 있습니다.

그런 오류 중 하나가 “테이블의 스토리지 엔진이 수리를 지원하지 않습니다.”입니다. 이 오류는 특정 스토리지 엔진을 지원하지 않는 명령을 사용하여 테이블을 수리하려고 할 때 발생합니다. 예를 들어, InnoDB 스토리지 엔진에서 생성된 테이블을 수리하기 위해 myisamchk 명령을 사용하고 있습니다. 이 기사에서는 MySQL에서 ‘테이블의 스토리지 엔진이 수리를 지원하지 않습니다’ 오류를 해결하는 방법에 대해 논의하겠습니다.

MySQL에서 “테이블의 스토리지 엔진이 수리를 지원하지 않습니다” 오류를 해결하는 방법

테이블의 스토리지 엔진이 수리를 지원하지 않습니다

이런 오류가 발생하는 경우, 먼저 테이블을 스토리지 엔진에 따라 수리해야 하는지 확인해야 합니다. 스토리지 엔진(MyISAM 및 InnoDB)에 따라 어떤 명령이나 유틸리티를 사용할 수 있는지 살펴보겠습니다.

MyISAM 스토리지 엔진의 경우

MyISAM 테이블을 수리하려면 다음 명령을 실행할 수 있습니다:

1: REPAIR TABLE 명령

REPAIR TABLE은 MyISAM 테이블을 수리하는 데 사용되는 강력한 명령입니다. 이 명령은 한 번에 단일 테이블만 수리할 수 있습니다. 사용 방법은 다음과 같습니다:

REPAIR TABLE tablename [options]

2: myisamchk 명령

myisamchk 유틸리티를 실행하여 MyISAM 테이블을 수리할 수도 있습니다. 이 유틸리티는 손상된 테이블에서 모든 데이터를 추출합니다. MySQL 테이블을 수리하기 위해 myisamchk 명령을 사용하는 구문은 다음과 같습니다:

myisamchk [ –recover ] tbl_name …

참고: 이 명령은 고유하지 않은 고유 키를 제외하고 테이블의 거의 모든 문제를 해결할 수 있습니다.

InnoDB 스토리지 엔진의 경우

InnoDB 스토리지 엔진에서 생성된 테이블을 수리하려면 아래 명령을 실행할 수 있습니다:

1- ALTER TABLE 명령

InnoDB 테이블을 수리하려면 ALTER TABLE 명령을 사용할 수 있습니다. 이 명령은 테이블에 새 이름을 제공하여 InnoDB가 테이블을 재생성하고 모든 데이터를 재구성하도록 강제합니다. 이 명령은 MySQL InnoDB 테이블의 손상 문제를 해결하는 데도 도움이 될 수 있습니다. 이 명령을 사용하는 방법은 다음과 같습니다:

ALTER TABLE tbl_name ENGINE=INNODB

참고 : 명령을 사용하기 전에 테이블에 대한 ALTER, CREATE 및 INSERT 권한이 있는지 확인하십시오.

2- mysqldump 명령

mysqldump 명령을 사용하여 InnoDB 테이블을 덤프하고 다시 로드하여 재구성할 수도 있습니다. 이를 수행하기 위해 따라야 할 단계는 다음과 같습니다:

1단계: MySQL 서버 재시작

먼저 MySQL 서버를 재시작해야 합니다. 아래 명령을 실행하십시오:

service mysql restart

2단계: Innodb_force_recovery 설정을 사용하여 MySQL 서버 시작

서버는 손상된 InnoDB 테이블을 감지할 때 시작하지 않거나 충돌할 수 있습니다. 이 경우 Force InnoDB recovery를 사용하여 MySQL 데이터베이스를 재구성할 수 있습니다. MySQL 검색 엔진에는 시작 프로세스 중 MySQL 동작을 사용자 정의하기 위한 Innodb_force_recovery 설정이 있습니다. 이 설정을 사용하여 손상된 테이블을 감지하더라도 서버가 시작되도록 허용할 수 있습니다.

기본적으로 Innodb_force_recovery 옵션은 활성화되어 있지 않습니다. 이 옵션을 구성 파일에서 활성화해야 합니다. 이를 위해 시스템의 구성 파일(my.cnf)로 이동하십시오.

구성 파일의 위치는 사용하는 운영 체제에 따라 다를 수 있습니다. Windows에서는 ‘/etc’ 디렉토리에서 구성 파일을 찾을 수 있습니다. 기본 경로는 /etc/mysql/my.cnf입니다.

이제 my.cnf 파일을 열고 [mysqld] 섹션으로 이동한 다음 기존 문장을 다음 문장으로 변경하십시오:

[mysqld]

Innodb_force_recovery=1

service mysql restart

참고: 위 단계는 InnoDB 엔진을 시작한 다음 테이블을 덤프하는 데 도움이 됩니다. innodb_force_recovery 값을 4보다 크게 설정할 수 있습니다. 그러나 4보다 큰 값을 추가하면 데이터 손실이 발생할 수 있습니다. 따라서 먼저 백업을 생성한 후 진행하십시오.

3단계: 테이블 데이터 덤프

innodb_force_recovery 옵션을 활성화한 후 손상된 InnoDB 테이블에 쉽게 접근할 수 있습니다. 다음으로, 다음 명령을 사용하여 테이블 데이터를 덤프하십시오:

mysqldump -u user -p database_name table_name > single_dbtable_dump.sql

4단계: dump.sql 파일로 데이터 내보내기

이제 아래 명령을 사용하여 데이터를 dump.sql 파일로 내보내십시오:

mysqldump –all-databases –add-drop-database –add-drop-table > dump.sql

5단계: 데이터베이스 삭제 및 InnoDB 복구 모드 비활성화

그 후 MySQL 서버를 재시작하고 DROP DATABASE 명령을 사용하여 데이터베이스를 삭제하십시오.

다음으로, 동일한 구성 파일 [mysqld]로 이동하여 InnoDB 복구 모드를 비활성화하십시오. 이를 위해 다음 줄을 주석 처리하십시오.

#innodb_force_recovery=…

이제 CTRL+S를 눌러 my.cnf 파일에 적용된 모든 변경 사항을 저장하고 MySQL 서버를 재시작하십시오.

사용 중인 스토리지 엔진(InnoDB 또는 MyISAM)에 따라 위에서 제공한 명령 및 유틸리티를 따를 수 있습니다. 이렇게 하면 테이블/데이터베이스를 수리할 때 ‘테이블의 스토리지 엔진이 수리를 지원하지 않습니다’ 오류를 방지할 수 있습니다.

손상된 MySQL 데이터베이스/테이블을 수리하기 위한 대체 솔루션

InnoDB와 MyISAM 스토리지 엔진 모두에서 생성된 테이블을 수리하기 위한 단일 솔루션을 원하신다면, Stellar Repair for MySQL과 같은 전문 MySQL 수리 도구를 사용할 수 있습니다. 이 도구는 InnoDB와 MyISAM 스토리지 엔진을 모두 지원합니다.

이 도구는 외래 키, 고유 키 등을 포함하여 손상된 테이블에서 모든 데이터를 빠르게 복구할 수 있습니다. 이 도구는 데이터베이스 객체의 선택적 복구를 지원합니다. 수리된 데이터를 여러 형식(MySQL, MariaDB 등)으로 저장할 수 있습니다.

결론

‘테이블의 스토리지 엔진이 수리를 지원하지 않습니다’ 오류는 MySQL의 스토리지 엔진 오류입니다. 이 오류가 발생하는 경우, 스토리지 엔진에 따라 올바른 수리 명령을 실행하고 있는지 확인하십시오.

위에서는 스토리지 엔진(MyISAM 및 InnoDB)에 따라 MySQL 테이블을 수리하는 데 사용할 수 있는 명령에 대해 논의했습니다.

또한, 번거로움 없이 InnoDB와 MyISAM 테이블을 수리하기 위해 고급 MySQL 수리 도구인 Stellar Repair for MySQL을 사용할 수 있습니다. 이 도구는 Windows 및 Linux 운영 체제와 호환됩니다.

[수정됨] MySQL 오류: ‘테이블의 스토리지 엔진이 수리를 지원하지 않습니다’에 대한 의견이 있으시면 아래 댓글란에 자유롭게 남겨주세요. 또한, 비디오 튜토리얼을 위해 DigitBin YouTube 채널을 구독해 주세요. 감사합니다!

Share: X/Twitter LinkedIn

새 게시물을 받은 편지함에서 받기

스팸은 없습니다. 언제든지 구독 해지 가능합니다.