Решение проблемы «Too many open files» в MySQL

При росте количества таблиц и баз данных в MySQL рано или поздно Вы получите ошибку: Too many open files. Данная ошибка связана с не достаточным количеством выделенных дескрипторов файлов, на уровне операционной системы или MySQL.

Анализ дескрипторов Вы можете произвести командой:

В результате увидите нечто подобное:

Как видите, в данном случае выдалось 1024 открытых файлов. Это не большое количество и может Вас не устроить.

Вы можете увидеть, сколько выделено дескрипторов:

Так же, еще вариант просмотра:

Количество выделенных дескрипторов пользователю mySQL:

Для Debian и Linux Ubuntu:

Увеличиваем количество дескипторов

Заполняем таким содержимым:

Установка параметров, специфичных для MySQL:

Отредактируем файл /etc/security/limits.d/90-nproc.conf:

Заполним файл:

Установите под root:

Теперь, перезагрузите сервер и поменяйте параметры в конфиге MySQL:

Запишите после [mysqld]:

Запишите после [mysqld_safe]:

Теперь перезагрузите сервер:

Для проверки настроек в MySQL войдите:

Выполните команду:

В результате, должны увидеть:

Перезагрузите сервер и проверьте, сохранились ли настройки:

Если после загрузки Вы увидите значение 1024, то не сохранились настройки. В таком случае, читайте решение проблем.

Решение проблем

Проверьте файл /etc/security/limits.conf он должен содержать:

Или установите лимит таким образом:

Перезагрузите MySQL:

Можно внести изменения в:

Добавьте следующее:

В настройках /etc/my.cnf укажите:

или

Проблемы в Linux Ubuntu 15.04

Все перечисленные вещи не помогли в Linux Ubuntu 15.04. Немного погуглив, я нашел решение для Linux Ubuntu 15.04.

Нужно внести изменения в файл: /lib/systemd/system/mysql.service

К содержимому данного файла:

Добавьте:

 

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *