1030 Erro 28 do mecanismo de armazenamento

205

Estou trabalhando em um projeto em que preciso criar um banco de dados com 300 tabelas para cada usuário que deseja ver o aplicativo de demonstração. estava funcionando bem, mas hoje, quando eu estava testando com um novo usuário para ver uma demonstração, ele me mostrou essa mensagem de erro

1030 Got error 28 from storage engine

Depois de passar algum tempo pesquisando, descobri que é um erro relacionado ao espaço do banco de dados ou aos arquivos temporários. Eu tentei consertá-lo, mas falhei. agora nem consigo iniciar o mysql. Como posso corrigir isso e também gostaria de aumentar o tamanho para o máximo para não enfrentar o mesmo problema repetidamente.

Escorpião
fonte
1
Afirmando o óbvio ... você tem espaço livre suficiente na partição onde os dados do mysql são armazenados? Em qual plataforma você está executando? Localhost ou uma empresa de hospedagem?
DCode
@DCoder: - Eu tenho um servidor na nuvem Amazon
ScoRpion
1
@ShowketBhat Eu tenho o mesmo problema, minha /tmppasta é ter 100% de uso de espaço. Não há problema em excluir todos os arquivos dessa pasta / tmp? E outra pergunta: por que não é excluída automaticamente?
Dima Deplov

Respostas:

412

Erro Mysql " 28 do mecanismo de armazenamento " - significa " espaço em disco insuficiente ".

Para mostrar o espaço em disco, use o comando abaixo.

myServer# df -h

Os resultados devem ser assim.

Filesystem    Size    Used   Avail Capacity  Mounted on
/dev/vdisk     13G     13G     46M   100%    /
devfs         1.0k    1.0k      0B   100%    /dev
Oleksandr Diudiun
fonte
6
Para obter informações adicionais, você receberá o mesmo erro se o sistema de arquivos / tmp atingir 100% de uso.
Kumar
1
Mesmo se você tiver o mysql data_dir em uma partição (ou disco) diferente, que possui espaço livre, você deve ter espaço livre em / e / tmp (é claro que você pode ter os últimos em uma partição / disco diferente)
Diego Andrés Díaz Espinoza
1
Você salvou meu dia, eu encontrei 390 GB file de log lento ((
Mulya
1
Boa resposta. Isso economizou muito tempo. 1
Pratik Soni
34

Para expandir isso (mesmo que seja uma pergunta mais antiga); Provavelmente não é sobre o próprio espaço MySQL, mas sobre o espaço em geral, assumindo arquivos tmp ou algo assim. Meu diretório de dados mysql não estava cheio, a partição / (root) estava

Maarten
fonte
10

Eu tive o mesmo problema no AWS RDS. Isso ocorreu devido ao espaço disponível (espaço de armazenamento no disco rígido) estar cheio. Você precisa aumentar seu espaço ou remover alguns dados.

Gregory Burns
fonte
8

Meu / tmp foi% 100. Depois de remover todos os arquivos e reiniciar o mysql, tudo funcionou bem.

Sami Onur Zaim
fonte
2

Minha pasta / var / log / apache2 tinha 35g e alguns logs em / var / log totalizaram os outros 5g do meu disco rígido de 40g. Limpei todos os logs * .gz e, depois de garantir que os outros logs não fizessem coisas ruins se eu mexesse com eles, também os limpei.

echo "clear" > access.log

etc.

PyromonkeyGG
fonte
3
Essa é uma maneira muito estranha de limpar um arquivo de log, não é? Por que não apenas controlá-lo?
precisa saber é o seguinte
3
Talvez então você possa manter o arquivo e as permissões?
Zachary Dahan
9
Eu recomendo usar truncatepara limpar logs,truncate -s 0 access.log
2

Verifique seu / backup para ver se você pode excluir um backup antigo não necessário.

Jacob
fonte
1

Eu tive um problema semelhante, devido aos meus logs binários de replicação .

Se for esse o caso, basta criar um cronjob para executar esta consulta todos os dias:

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

Isso removerá todos os logs binários com mais de 2 dias.

Encontrei esta solução aqui .

GabrielOliv
fonte
0

Um simples: $ sth-> finish (); Provavelmente evitaria que você se preocupasse com isso. O Mysql usa o espaço tmp do sistema em vez de seu próprio espaço.

Craig
fonte
0
sudo su


cd /var/log/mysql

e finalmente digite: > mysql-slow.log

Isso funcionou para mim

Kaushik Thanki
fonte
0

Solte o banco de dados do problema e reinicie o serviço mysql ( sudo service mysql restart, por exemplo).

Sergio Belevskij
fonte