MySQL / ошибка записи файла (Errcode 28)
У меня есть следующая ошибка с одним из наших веб-приложений -
Query3 failed: Error writing file '/tmp/MY1fnqpm' (Errcode: 28) ... INSERT MailList... (removed the rest of the query for security reasons)
любые идеи - это какая-то проблема с жестким диском на моем сервере?
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, который обычно находится в его собственном разделе.