В логах MySQL сообщения Sort aborted: Error writing file '/tmp/MYz0Twzd' (Errcode: 28) Что делать?

Аватар пользователя admin

Иногда в логах MySQL сервера появляются сообщения вида:

Sort aborted: Error writing file '/tmp/MYz0Twzd' (Errcode: 28)


Довольно часто такие сообщения соседствуют с сообщениями вида:

Incorrect key file for table '/tmp/#sql_9b9_0.MYI'; try to repair it

Часто подобные сообщения ставят начинающих администраторов в тупик.

Тем не менее причина подобных сообщений банальна и проста, если озаботится пониманием того, что означает код 28. А означает он: "No space left on device", то есть "На устройстве кончилось место" или проще говоря, в разделе, на котором расположен /tmp кончилось или кончается место. Причём вы даже можете сделать df, а потом удивлённо пожать плечами, типа у меня ещё есть 2Gb места, но это ничего не значит!

При некорректном проектировании запросов к БД, ошибках в запросах, MySQL создаёт временные таблицы и индексы к ним в каталоге /tmp. Эти временные таблицы и индексы могут занимать гигабайты места! Но поскольку они временные, то как только в них отпадает необходимость, они удаляются и вы просто можете не попасть на момент, когда место реально кончается в 0. Лишь вышеописанные сообщения об ошибках могут вам это подсказать!

Что делать? Освободите больше места, а лучше включите лог медленных запросов (если он ещё не включен), найдите проблемный запрос и оптимизируйте его, чтобы он не потреблял столько ресурсов.

0
Ваш рейтинг: Нет