1030: Got error N from storage engine
MySQL의미
스토리지 엔진(InnoDB/MyISAM)이 작업을 완료하지 못하고 저수준 오류 코드를 반환했다. SQL 계층 아래의 디스크, 파일 시스템 또는 엔진 내부 문제에 대한 일반 보고다. 괄호/메시지 안의 하위 코드가 실제 원인을 보여 준다.
원인
흔한 원인: 디스크/임시 공간 가득 참(예: errno 28 - No space left on device), 파일 권한 문제, 손상된 테이블 파일, InnoDB 테이블스페이스 문제, OS 수준 I/O 오류. 큰 임시 테이블을 생성하는 sort/group 쿼리도 원인이 될 수 있다.
해결 방법
하위 오류 코드를 해석한다(Linux에서는 perror N으로 의미 확인, 예: perror 28). 디스크 사용량과 tmpdir 공간을 확인하고 공간을 확보한다. 파일 소유권/권한을 확인한다. InnoDB는 오류 로그의 세부 내용을 검토하고, 손상이 의심되면 CHECK TABLE을 실행하고 필요하면 복구한다. 거대한 임시 결과를 생성하는 쿼리를 최적화한다.
같은 데이터베이스의 다른 항목
- 1075Incorrect table definition; there can be only one auto column and it must be defined as a key (잘못된 테이블 정의. auto 컬럼은 하나만 가능하며 키로 정의해야 함)
- 1055Expression not in GROUP BY (only_full_group_by) (GROUP BY에 없는 표현식)
- 1267Illegal mix of collations
- 1197Multi-statement transaction required more than 'max_binlog_cache_size' (다중 문장 트랜잭션이 'max_binlog_cache_size'보다 많은 공간을 요구함)
- 1785Statement violates GTID consistency
- 3024Query execution was interrupted, maximum statement execution time exceeded (쿼리 실행이 중단됨. 최대 문장 실행 시간 초과)
- 1298Unknown or incorrect time zone