Mysql Too many open files

Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
Ответить
Mysql Too many open files
2017-05-10 03:06:33 3548 [ERROR] /usr/sbin/mysqld: Can't open file: './tasia/b_mail_mailbox.frm' (errno: 24 - Too many open files)
2017-05-10 03:06:41 3548 [ERROR] /usr/sbin/mysqld: Can't open file: './forum_ tasia/muddi_attachments.frm' (errno: 24 - Too many open files)
2017-05-10 03:07:03 3548 [ERROR] Error in accept: Too many open files
2017-05-10 03:11:19 3548 [ERROR] Error in accept: Too many open files
2017-05-10 03:15:35 3548 [ERROR] Error in accept: Too many open files
2017-05-10 03:19:51 3548 [ERROR] Error in accept: Too many open files
2017-05-10 03:24:07 3548 [ERROR] Error in accept: Too many open files
2017-05-10 03:28:23 3548 [ERROR] Error in accept: Too many open files
2017-05-10 03:29:04 3548 [ERROR] /usr/sbin/mysqld: Can't open file: './task_tasia_db/settings.frm' (errno: 24 - Too many open files)
2017-05-10 03:32:39 3548 [ERROR] Error in accept: Too many open files
2017-05-10 03:36:55 3548 [ERROR] Error in accept: Too many open files
2017-05-10 03:41:11 3548 [ERROR] Error in accept: Too many open files
2017-05-10 03:45:27 3548 [ERROR] Error in accept: Too many open files
2017-05-10 03:49:43 3548 [ERROR] Error in accept: Too many open files
сли у вас возникает проблема «Error in accept: Too many open files» в вашей базе данных, Mysql или MariaDB, то вы наверно пытались увеличить в конфиге параметр open_files_limit, но вот не задача, после перезагрузки сервера, параметр остается фиксированным — 1024.

Первое куда лезем:
Проверить сколько майскуэль задействовало файлов:
lsof -u mysql | wc -l


Увеличил лимит открытых файлов в конфигурации MySQL: файл my.cnf
секция [mysqld]
open_files_limit = 16000

Перегружаем сервер и проверяем:
$ mysql -se "show variables like 'open_files_limit'"
Variable_name       Value
open_files_limit    1024

Если нет то копаем дальше:
"Смотрим сколько разрешено открывать файловых дескрипторов пользователю mysql (пользователь, с правами которого работает MySQL сервер)."
su - mysql -c 'ulimit -n'
1024

Увеличим лимит до 16535:

$ echo 'mysql  -  nofile  16535' | sudo tee -a /etc/security/limits.d/mysql.conf
$ sudo su - mysql -c 'ulimit -n'
16535

Если лимит не изменился, то нужно посмотреть где подключен pam_limits.so в конфигурации PAM.

$ grep -r limits /etc/pam.*
/etc/pam.d/sshd:session    required     pam_limits.so
/etc/pam.d/atd:session    required   pam_limits.so
/etc/pam.d/login:session    required   pam_limits.so
/etc/pam.d/sudo:session required pam_limits.so
/etc/pam.d/cron:session    required   pam_limits.so
/etc/pam.d/su:# session    required   pam_limits.so

Для Debian нужно добавить строку session required pam_limits.so в /etc/pam.d/common-session

$ echo 'session required pam_limits.so' | sudo tee -a /etc/pam.d/common-session

Осталось поправить конфиг MySQL, чтобы сервер начал использовать новый лимит. Для этого в my.cnf в секцию [mysqld] добавляем строчку

open_files_limit = 4096
Решил вопрос следующим образом:
В каталоге /etc/systemd/system/multi-user.target.wants/
лежит файл mysql.service
в секцию [Service] дописал LimitNOFILE=16384, далее
systemctl daemon-reload

далее:
systemctl restart mysql
Страницы: 1
Ответить
Форма ответов
 
Текст сообщения*
:) ;) :D 8) :( :| :cry: :evil: :o :oops: :{} :?: :!: :idea:
Защита от автоматических сообщений. Введите символы, изображенные на этой картинке в поле ввода &quote;Код подтверждения&quote;.