В логах MySQL сообщения Incorrect key file for table '/tmp/#sql_9b9_0.MYI'; try to repair it. Что делать?
Иногда в логах MySQL сервера появляются сообщения вида:
Incorrect key file for table '/tmp/#sql_9b9_0.MYI'; try to repair it
Довольно часто такие сообщения соседствуют с сообщениями вида:
Sort aborted: Error writing file '/tmp/MYz0Twzd' (Errcode: 28)
Часто подобные сообщения ставят начинающих администраторов в тупик.
Тем не менее причина подобных сообщений банальна и проста, если озаботится пониманием того, что означает код 28. А означает он: "No space left on device", то есть "На устройстве кончилось место" или проще говоря, в разделе, на котором расположен /tmp кончилось или кончается место. Причём вы даже можете сделать df, а потом удивлённо пожать плечами, типа у меня ещё есть 2Gb места, но это ничего не значит!
При некорректном проектировании запросов к БД, ошибках в запросах, MySQL создаёт временные таблицы и индексы к ним в каталоге /tmp. Эти временные таблицы и индексы могут занимать гигабайты места! Но поскольку они временные, то как только в них отпадает необходимость, они удаляются и вы просто можете не попасть на момент, когда место реально кончается в 0. Лишь вышеописанные сообщения об ошибках могут вам это подсказать!
Что делать? Освободите больше места, а лучше включите лог медленных запросов (если он ещё не включен), найдите проблемный запрос и оптимизируйте его, чтобы он не потреблял столько ресурсов.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
- 2006 просмотров