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. Это было связано с тем, что свободное пространство (место на жестком диске) было заполнено. Вам нужно увеличить свое пространство или удалить некоторые данные.

Грегори Бернс
источник
8

Мой / tmp был% 100. После удаления всех файлов и перезапуска MySQL все работало нормально.

Сами Онур Заим
источник
2

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

echo "clear" > access.log

и т.п.

PyromonkeyGG
источник
3
Это очень странный способ очистить файл журнала, не так ли? Почему бы просто не это?
user1175849
3
Может тогда можно сохранить файл и разрешения?
Захари Дахан
9
Я рекомендую использовать truncateдля очистки журналов,truncate -s 0 access.log
2

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

Иаков
источник
1

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

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

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

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

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

GabrielOliv
источник
0

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

Craig
источник
0
sudo su


cd /var/log/mysql

и, наконец, введите: > mysql-slow.log

Это сработало для меня

Каушик благодар
источник
0

Удалите проблемную базу данных, затем перезагрузите службу mysql ( sudo service mysql restartнапример).

Серхио Белевский
источник