Это старая версия документа!


MySql/MariaDB Исправление ошибок

  • mysqlcheck –check-upgrade –all-databases –auto-repair -u root -p
  • mysql_upgrade –force -u root -p

Превышение одновременно открытых дескрипторов

Анализ состояния

  • Сколько разрешено открывать файловых дескрипторов пользователю 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

  • Выставляем число дескрипторов в 8192
  • echo 'mysql  -  nofile  8192' > /etc/security/limits.d/mysql.conf

  • nano /etc/mysql/my.cnf
  • open_files_limit 8192

  • Перезапускаем сервер
  • # service mysql restart
PAM
  • Проверяем ограничения PAM
  • grep -r limits /etc/pam.*

  • Снимаем ограничение (Debian)
  • $ echo 'session required pam_limits.so' | sudo tee -a /etc/pam.d/common-session
systemd
  • Сбрасываем ограничения в systemd
  • echo "
    [Service]
    LimitNOFILE=infinity
    LimitMEMLOCK=infinity" > /etc/systemd/system/mysqld.service

  • Перезагружаем настройки демона systemd
  • systemctl reload mariadb.service