Это старая версия документа!
MySql/MariaDB Исправление ошибок
Checking for corrupt, not cleanly closed and upgrade needing tables
- mysqlcheck –check-upgrade –all-databases –auto-repair -u root -p
- mysql_upgrade –force -u root -p
Too many open files
Превышение одновременно открытых дескрипторов
Решение
Анализ состояния
- Сколько разрешено открывать файловых дескрипторов пользователю mysql (системные ограничения)
# cat /etc/security/limits.conf | grep -vP '^#'
- Сколько разрешено открывать файловых дескрипторов (конфигурация)
cat /etc/mysql/my.cnf|grep open_files_limit
- Сколько занято дескрипторов
lsof -u mysql | wc -l
- Cколько дескрипторов разрешено в MySQL
# mysql -se "show variables like 'open_files_limit'" -uroot -p Variable_name Value open_files_limit 1024
Исправление
- nano /etc/security/limits.conf
- Воставляем число файловых дескрипторов (для пользователя mysql)
mysql hard nofile 102400 mysql soft nofile 102400
- nano /etc/mysql/my.cnf
open_files_limit 8192
- Перезапускаем сервер
# service mysql restart
PAM
Если после перезапуска mysql не применил новые ограничения, значит PAM это запретил. Тогда добавляем разрешение в PAM.
- Проверяем ограничения PAM
grep -r limits /etc/pam.*
- Снимаем ограничение (Debian)
$ echo 'session required pam_limits.so' >> /etc/pam.d/common-session
systemd
- Сбрасываем ограничения в systemd
echo " [Service] LimitNOFILE=infinity LimitMEMLOCK=infinity" > /etc/systemd/system/mysqld.service
- Перезагружаем настройки демона systemd
systemctl reload mariadb.service