Open_files_limit в MySQL


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 в зависимости от дистрибутива.



Open_files_limit mysql


Если значение близко к 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 и правильно настроить сервер баз данных для работы при высоких нагрузках.

Сказать спасибо