Перейти к основному содержанию

Seafile — ошибка Failed to connect to MySQL

Linux 2

На сервере Seafile в логах сборщика мусора встретил странные ошибки:

2025-11-02 22:26:21 ../../common/seaf-db.c(867): Failed to connect to MySQL: Can't connect to server on '127.0.0.1' (110)

MySQL работает нормально, Seafile тоже работает, а ошибки есть. Начал гуглить и нашёл интересный кейс:

https://forum.seafile.com/t/seafile-pro-7-1-3-failed-to-connect-to-mysql/11827

Не я один нарвался на такую ошибку, более того, ошибка проявляется и про использовании seaf-fuse, что совсем неудобно. При этом ломается точка монтирования.

В статье приводится решение проблемы: установить значения net.ipv4.tcp_tw_reuse и net.ipv4.tcp_tw_recycle в 1. Давайте попробуем.

В /etc/sysctl.conf добавляем:

net.ipv4.tcp_tw_reuse = 1

Выполняем:

sudo sysctl -p

Перезагрузимся на всякий случай.

Параметр tcp_tw_recycle не будем использовать по просто причине: net.ipv4.tcp_tw_recycle был удалён из ядра Linux 4.12 в 2017 году. Если его применить в более новой версии ядра, то получим ошибку:

sysctl: cannot stat /proc/sys/net/ipv4/tcp_tw_recycle: No such file or directory

tcp_tw_reuse

Параметр tcp_tw_reuse помогает избежать нехватки свободных портов на сервере. Когда вы закрываете TCP-соединение, его порт ненадолго блокируется в состоянии TIME_WAIT. Если сервер создаёт много коротких подключений, свободные порты быстро заканчиваются. Включив tcp_tw_reuse = 1, вы разрешаете системе повторно использовать эти порты для новых исходящих соединений, не дожидаясь их полной разблокировки. Это ускоряет работу и решает проблему нехватки портов.

В случае Seafile, раз он постоянно создаёт отдельные соединения к MySQL (зря, конечно), использовать этот параметр кажется разумным.

tcp_tw_recycle

Параметр tcp_tw_recycle ускоряет освобождение портов из состояния TIME_WAIT. По умолчанию порт остается заблокированным 2 минуты. При включении tcp_tw_recycle система сокращает это время, подбирая его под вашу сеть. Однако этот параметр опасен. Он может вызывать проблемы при работе через NAT (например, в облаках или корпоративных сетях), когда соединения начинают необъяснимо обрываться. Эти сбои сложно диагностировать, поэтому использовать tcp_tw_recycle не рекомендуется.

Теги

 

Похожие материалы

Seafile сервер для Linux версия 7.0.2

13 июня 2019 года вышла новая версия сервера Seafile для Linux — 7.0.2. Релиз уже не помечен как beta. Прошлый раз я пробовал обновить Seafile Server 6.3 до версии 7.0.0, но были проблемы и прошлось откатиться. На этот раз релиз получше. Обновлённый до 7.0.2 сервер заработал без ошибок. Да, да, прежде чем написать новость, я проверил версию на себе. Интерфейс стал удобнее и приятнее.

Seafile сервер для Linux — 12.0.10

3 марта 2025 года вышла версия Seafile 12.0.10. В версии исправлены некоторые ошибки. Радует, что наконец-то исправлена поддержка seaf-fuse. Дома я использую этот функционал, теперь можно попытаться обновить.

Теги