Исправление ошибки [ERROR] mysqld: Can’t open file: ‘…’ (errno: 24)

Ошибка возникает ввиду того, что MySQL не может открыть больше файлов, чем позволено. Вследствие этого весь сервис MySQL может начать работать некорректно.

Как проверить текущий лимит

$ mysql -u<user> -p -e "SHOW VARIABLES LIKE 'open%'"

Значение по умолчанию — 1024, что довольно мало.

Как исправить

В некоторых источниках предлагается просто добавить строку в /etc/my.cnf:

[mysqld]
open_files_limit = 100000

Однако этот вариант, как правило, не приводит к результату.

Более правильный вариант — изменить конфигурацию сервиса mariadb. Для этого на CentOS нужно отредактировать файл:

/etc/systemd/system/mariadb.service.d/limits.conf

и добавить в него следующее содержимое:

[Service]
LimitNOFILE=100000

После чего выполнить:

$ systemctl daemon-reload
$ service mariadb restart

Проверяем, что лимиты применились:

$ mysql -u<user> -p -e "SHOW VARIABLES LIKE 'open%'"

Добавить комментарий