open_files_limit в MySQL — параметр в конфигурационном файле /etc/mysql/my.cnf, позволяющий задать максимальное возможное количество открытых файлов. Сервер баз данных может оказаться неработоспособен из-за попытки открытия файлов в большем количестве, чем задано этой директивой.
Как изменить значение open_files_limit в MySQL
По умолчанию значение open_files_limit установлено в 1024
Посмотреть актуальное фактическое значение можно при помощи lsof
lsof -u mysql | wc -l
Если утилиты lsof нет в системе её можно установить выполнив apt install lsof или yum install lsof в зависимости от дистрибутива.
Если значение близко к 1024 в блок [mysqld] my.cnf (или другого файла подключаемого в my.cnf) нужно добавить (или скорректировать существующее значение):
mcedit /etc/mysql/my.cnf
open_files_limit = 2000
Затем MySQL перезапускается
systemctl restart mysqld
Через консоль MySQL значение поменять нельзя, сделать это можно было бы так:
SET @ @global.open_files_limit =2000
Запрос вернет ошибку с указанием на то, что нужно редактировать конфигурационный файл.
Поскольку переменная существует в read-only режиме изменить ее значение можно только в конфигурационном файле.
Делать это нужно если в логи MySQL или пишутся ошибки, из которых следует что достигнуто количество файлов, которые можно открыть или если такие записи выводятся в браузер пользователя, обращающегося к сайту.
Часто отображается ошибка ERROR mysqld: Can't open file (errno: 24), но могут быть и другие.
Читайте также о том как включить логи ошибок MySQL и правильно настроить сервер баз данных для работы при высоких нагрузках.