MySQL / ошибка записи файла (Errcode 28)


У меня есть следующая ошибка с одним из наших веб-приложений -

Query3 failed: Error writing file '/tmp/MY1fnqpm' (Errcode: 28) ... INSERT MailList... (removed the rest of the query for security reasons)

любые идеи - это какая-то проблема с жестким диском на моем сервере?

8 71

8 ответов:

использовать perror команда:

$ perror 28
OS error code  28:  No space left on device

если коды ошибок не отличаются в вашей системе, ваша файловая система заполнена.

мы испытали подобную проблему, и проблема заключалась в том, что MySQL использовал каталог /tmp для своих нужд (это конфигурация по умолчанию). И /tmp был расположен на своем собственном разделе, который имел слишком мало места для больших запросов MySQL.

для получения более подробной информации взгляните на этот ответ: https://stackoverflow.com/a/3716778/994302

У меня была такая же проблема, но дисковое пространство было в порядке (только 40% заполнено). Проблема была inodes, у меня было слишком много маленьких файлов, и мои inodes были полны.

вы можете проверить статус inode с помощью df-i

ошибка означает, что у вас недостаточно места для создания временных файлов, необходимых MySQL

первое, что вы можете попробовать, это расширить размер вашего/ tmp / раздела, если вы находитесь под LVM проверьте команду lvextend

Если вы не можете увеличить размер вашего /tmp/ раздела, вы можете работать в конфигурации MySQL, отредактируйте my.cnf файл и искать эту строку

tmpdir = /tmp/

изменить его на все, что вы хотите, просто убедитесь, что чтобы иметь пространство и назначить разрешение на запись для пользователя mysql в новом каталоге.

надеюсь, что это помогает

выполнить следующий код:

du-sh/var/log / mysql

возможно, двоичные журналы mysql заполнили память, если это так, выполните удаление старых журналов и перезагрузите сервер. Также добавьте в мой.cnf:

expire_logs_days = 3

вы также можете попробовать использовать эту строку, если другой не работает:

du-sh /var / lib / mysql / database_Name

вы также можете проверить с вашим хостом и посмотреть, насколько велики они позволяют вашим базам данных быть.

для пользователей xampp: по моему опыту, проблема была вызвана файлом с именем " 0 "и расположена в папке "mysql". Размер был слишком огромен (мина взорвалась примерно до 256 Гб). Его удаление исправило проблему.

эта ошибка возникает, когда у вас недостаточно места в разделе. Обычно MYSQL использует /tmp на серверах linux. Это может произойти с некоторыми запросами, потому что поиск либо возвращал много данных, либо, возможно, даже просто просеивал много данных, создавая большие временные файлы.

редактировать ваш /etc / mysql / my.cnf

tmpdir = / your / new / dir

Эл.г

tmpdir = /var / tmp

должно быть выделено больше места, чем /tmp, который обычно находится в его собственном разделе.