[mysql] 1114 (HY000) : 테이블이 가득 찼습니다.

InnoDB간단한 쿼리 를 사용하여 테이블에 행을 추가하려고 합니다.

INSERT INTO zip_codes (zip_code, city) VALUES ('90210', 'Beverly Hills');

그러나이 쿼리를 시도하면 다음과 같은 결과가 나타납니다.

오류 1114 (HY000) : 테이블 zip_codes이 가득 찼습니다.

하는

SELECT COUNT(*) FROM zip_codes

동일한 데이터베이스에 810,635 개의 행이있는 또 다른 테이블이 있다는 점을 고려하면 188,959 개의 행을 제공합니다.

나는에 대해 상당히 InnoDB engine경험이 없으며 MyISAM. 여기서 잠재적 인 문제는 무엇입니까?

편집 : 이것은 zip_codes테이블에 행을 추가 할 때만 발생 합니다.



답변

편집 : 먼저 구성 관련 해결 방법을 해결하기 전에 디스크 공간이 부족하지 않은 경우 확인하십시오.

당신은 당신을 위해 너무 낮은 최대 크기를 갖고있는 것 같다 innodb_data_file_path당신의 my.cnf,이 예에서

innodb_data_file_path = ibdata1:10M:autoextend:max:512M

결합 된 모든 innodb 테이블에서 512MB 이상의 데이터를 호스팅 할 수 없습니다.

를 사용하여 innodb-per-table 체계로 전환해야 할 수도 있습니다 innodb_file_per_table.


답변

또 다른 가능한 이유는 파티션이 꽉 찼기 때문입니다. 이것은 지금 나에게 일어난 일입니다.


답변

또한 동일한 오류 ERROR 1114 (HY000)가 표시됩니다. ‘# sql-310a_8867d7f’테이블이 가득 찼습니다.

스토리지 엔진 MEMORY를 사용하는 테이블에 인덱스를 추가하려는 경우.


답변

INNO_DB 테이블에 대해 my.cnf에 설정된 제한 한도를 수정해야합니다. 이 메모리 제한은 개별 테이블에 대해 설정되지 않으며 결합 된 모든 테이블에 대해 설정됩니다.

메모리를 512MB로 자동 확장하려는 경우

innodb_data_file_path = ibdata1:10M:autoextend:max:512M

한도를 모르거나 한도 한도를 설정하고 싶지 않은 경우 다음과 같이 수정할 수 있습니다.

innodb_data_file_path = ibdata1:10M:autoextend


답변

이 오류는 tmpdir상주 하는 파티션이 가득 찬 경우에도 나타납니다 (테이블 변경 또는 기타


답변

제 경우에는 ibdata1 파일을 호스팅하는 파티션이 꽉 찼기 때문입니다.


답변

mysql 테이블이 저장된 파티션 (일반적으로 / var / lib / mysql) 또는 임시 테이블이 저장된 파티션 (일반적으로 / tmp)에 공간이 부족할 수 있습니다.

다음을 수행 할 수 있습니다.-인덱스 생성 중에 여유 공간을 모니터링합니다. -tmpdir MySQL 변수를 다른 위치로 가리 킵니다. 서버를 다시 시작해야합니다.