오늘도 한 뼘 더

[MySQL] ERROR 1114 (HY000): The table 'tb_name' is full 본문

Study/MySQL

[MySQL] ERROR 1114 (HY000): The table 'tb_name' is full

나른한댕댕이🐶 2023. 11. 30. 14:42
728x90
반응형

  # 배경  

mysql에 복원 작업을 진행 중이었는데 다음과 같은 에러가 발생하면서 복원 작업이 중단되었다.

ERROR 1114 (HY000): The table 'tb_name' is full

 

  # 원인 및 해결 방법  

테이블에 더 이상 데이터를 추가할 수 없을 때 발생한다. 
이 오류는 원인이 여러 가지라고 한다. 오류와 해결 방법을 알아보았다.

 

1. 디스크 공간 부족

서버의 디스크 공간을 확인한다. 디스크가 가득 찬 경우, 불필요한 파일을 삭제하거나 디스크를 확장하여 공간을 확보한다.

 

2. InnoDB 저장 엔진 제한

InnoDB 저장 엔진을 사용하는 경우, 데이터 파일의 최대 크기에 제한이 있습니다. InnoDB 테이블 스페이스의 크기를 늘려야 할 수 있다.

구성 파일(my.cnf 또는 my.ini)을 수정하고 MySQL을 다시 시작한다.

innodb_data_file_path = ibdata1:10M:autoextend

 

mysql 재시작

3. 테이블 손상

테이블이 손상된 경우, 다음 SQL 쿼리를 사용하여 테이블을 수리한다.

REPAIR TABLE tb_name;

 

수리 작업을 수행하기 전에 데이터를 백업해 두도록 한다.

4. max_allowed_packet 설정

단일 쿼리에 대량의 데이터를 삽입하는 경우, max_allowed_packet 설정을 늘려야 할 수 있다.

max_allowed_packet=64M

 

설정을 변경한 후 MySQL을 재시작

5. 다른 오류 확인

MySQL 오류 로그(error.log)를 확인하여 테이블이 가득 찼을 때 다른 오류 또는 경고 메시지가 있는지 확인

 

6. 오래된 데이터 보관 및 삭제

테이블에서 오래된 데이터를 보관하거나 삭제하여 공간을 확보할 수 있다.

 

728x90
반응형
Comments