1030 저장소 엔진에서 28 오류가 발생했습니다


205

데모 응용 프로그램을 보려는 각 사용자마다 300 개의 테이블이있는 데이터베이스를 만들어야하는 프로젝트를 진행 중입니다. 그것은 잘 작동했지만 오늘 데모를보기 위해 새로운 사용자와 테스트 할 때이 오류 메시지가 표시되었습니다.

1030 Got error 28 from storage engine

인터넷 검색에 시간을 보낸 후 데이터베이스 또는 임시 파일 공간과 관련된 오류라는 것을 알았습니다. 나는 그것을 고치려고 노력했지만 실패했다. 이제는 심지어 mysql을 시작할 수 없습니다. 이 문제를 어떻게 해결할 수 있습니까? 또한 같은 문제가 반복해서 발생하지 않도록 크기를 최대로 늘리고 싶습니다.


1
명백한 내용을 말하면 ... mysql 데이터가 저장된 파티션에 충분한 여유 공간이 있습니까? 어떤 플랫폼에서 실행 중입니까? 로컬 호스트 또는 호스팅 회사?
DCoder

@DCoder : - 나는 아마존 클라우드에 서버가
전갈

1
@ShowketBhat 같은 문제가 있습니다, 내 /tmp폴더는 100 % 공간을 사용합니다. 이 / tmp 폴더에서 모든 파일을 삭제해도됩니다. 또 다른 질문은 왜 자동으로 삭제되지 않습니까?
Dima Deplov

답변:


412

스토리지 엔진에서 발생한 MySQL 오류 " 28 "- " 디스크 공간 부족 "을 의미 합니다.

디스크 공간을 표시하려면 아래 명령을 사용하십시오.

myServer# df -h

결과는 이와 같아야합니다.

Filesystem    Size    Used   Avail Capacity  Mounted on
/dev/vdisk     13G     13G     46M   100%    /
devfs         1.0k    1.0k      0B   100%    /dev

6
추가 정보를 보려면 / tmp 파일 시스템이 사용량의 100 %에 도달하면 동일한 오류가 발생합니다.
Kumar

1
여유 공간이있는 다른 파티션 (또는 디스크)에 Mysql data_dir이 있더라도 / 및 / tmp에 여유 공간이 있어야합니다 (물론 다른 파티션 / 디스크에 마지막 공간이있을 수 있음)
Diego Andrés Díaz Espinoza

1
당신은 내 하루를 저장, 나는 느린 로그의 390 Gb 파일을 발견했습니다 ((
mulya

1
좋은 답변입니다. 시간이 많이 절약되었습니다. +1
Pratik Soni

34

(더 오래된 질문 임에도 불구하고) 이것을 확장하기 위해; tmp 파일이나 그와 비슷한 것을 가정하면 MySQL 공간 자체가 아니라 일반적으로 공간에 관한 것입니다. 내 mysql 데이터 디렉토리가 가득 차지 않았고 / (루트) 파티션이


10

AWS RDS에서도 같은 문제가있었습니다. 사용 가능한 공간 (하드 드라이브 저장 공간)이 가득 찼기 때문입니다. 공간을 늘리거나 일부 데이터를 제거해야합니다.


8

내 / tmp는 % 100입니다. 모든 파일을 제거하고 mysql을 다시 시작하면 모든 것이 잘 작동했습니다.


2

내 / var / log / apache2 폴더는 35g이었고 / var / log의 일부 로그는 총 40g 하드 드라이브의 다른 5g로 집계되었습니다. 모든 * .gz 로그를 지우고 다른 로그가 엉망이되면 나쁜 일을하지 않도록 확인한 후에도 그냥 지 웠습니다.

echo "clear" > access.log

기타


3
로그 파일을 지우는 매우 이상한 방법입니까? 왜 그냥 rm하지?
user1175849

3
그렇다면 파일과 권한을 유지할 수 있습니까?
Zachary Dahan

9
truncate로그를 지우는 것이 좋습니다 .truncate -s 0 access.log

2

/ backup을 확인하여 필요하지 않은 오래된 백업을 삭제할 수 있는지 확인하십시오.


1

복제 이진 로그로 인해 비슷한 문제가 발생했습니다 .

이 경우 매일 cronjob을 만들어이 쿼리를 매일 실행하십시오.

PURGE BINARY LOGS BEFORE DATE_SUB( NOW(), INTERVAL 2 DAY );

이렇게하면 2 일이 지난 모든 이진 로그가 제거됩니다.

이 솔루션을 여기 에서 찾았 습니다 .


0

간단한 : $ sth-> finish (); 아마도 이것에 대해 걱정하지 않아도 될 것입니다. MySQL은 자체 공간 대신 ​​시스템의 tmp 공간을 사용합니다.


0
sudo su


cd /var/log/mysql

마지막으로 입력하십시오 : > mysql-slow.log

이것은 나를 위해 일했다


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.