1030 Ошибка 28 из движка хранилища


205

Я работаю над проектом, где мне нужно создать базу данных с 300 таблицами для каждого пользователя, который хочет увидеть демонстрационное приложение. он работал нормально, но сегодня, когда я тестировал нового пользователя, чтобы увидеть демо, он показал мне это сообщение об ошибке

1030 Got error 28 from storage engine

Потратив некоторое время на поиск в Google, я обнаружил, что это ошибка, связанная с пространством базы данных или временных файлов. Я пытался это исправить, но мне не удалось. Теперь я даже не могу запустить MySQL. Как я могу это исправить, и я также хотел бы увеличить размер до максимума, чтобы я не столкнулся с той же проблемой снова и снова.


1
Утверждая очевидное ... у вас достаточно свободного места в разделе, где хранятся данные MySQL? На какой платформе вы работаете? Localhost или хостинговая компания?
DCoder

@DCoder: - У меня есть сервер в облаке Amazon
ScoRpion

1
@ShowketBhat у меня та же проблема, моя /tmpпапка занимает 100% пространства. Можно просто удалить все файлы из этой папки / tmp? И еще вопрос, почему он не удаляется автоматически?
Дима Деплов

Ответы:


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% использования.
Кумар

1
Даже если у вас есть Mysql data_dir в другом разделе (или диске), на котором есть свободное место, у вас должно быть свободное место на / и / tmp (конечно, у вас могут быть последние на другом разделе / ​​диске)
Diego Andrés Díaz Эспиноза

1
Вы спасли мой день, я нашел файл медленного журнала 390 Гб ((
mulya

1
Хороший ответ. Это сэкономило мне много времени. +1
Пратик Сони

34

Чтобы расширить это (хотя это старый вопрос); Речь идет, вероятно, не о самом пространстве MySQL, а о пространстве в целом, с учетом файлов tmp или чего-то в этом роде. Мой каталог данных mysql не был заполнен, раздел / (root) был


10

У меня была такая же проблема в AWS RDS. Это было связано с тем, что свободное пространство (место на жестком диске) было заполнено. Вам нужно увеличить свое пространство или удалить некоторые данные.



2

Моя папка / var / log / apache2 была 35 г, а некоторые журналы в / var / log составляли остальные 5 г моего жесткого диска 40 г. Я очистил все журналы * .gz и, убедившись, что другие журналы не будут делать плохие вещи, если я их испортил, я просто очистил их тоже.

echo "clear" > access.log

и т.п.


3
Это очень странный способ очистить файл журнала, не так ли? Почему бы просто не это?
user1175849

3
Может тогда можно сохранить файл и разрешения?
Захари Дахан

9
Я рекомендую использовать truncateдля очистки журналов,truncate -s 0 access.log

2

Проверьте / резервную копию, чтобы увидеть, если вы можете удалить более старую ненужную резервную копию.


1

У меня была похожая проблема из-за моих двоичных журналов репликации .

Если это так, просто создайте cronjob для выполнения этого запроса каждый день:

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

Это удалит все двоичные журналы старше 2 дней.

Я нашел это решение здесь .


0

Простое: $ sth-> finish (); Возможно, избавит вас от беспокойства по этому поводу. Mysql использует системное пространство tmp вместо собственного пространства.



Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.