MySQL – Ajustar número de conexões (to many open files)

Verificamos que quando o cliente possui uma quantidade muito grande de usuários o MySQL pode passar a apresentar o erro to many open files. Para resolver esta situação siga os passos abaixo:

  • Edite o arquivo  /etc/security/limits.conf  usando seu editor de texto favorito.
  • Adicione o seguinte para todos os usuários na parte inferior do arquivo e salve-o.
    * soft nofile 102400
    * hard nofile 102400
    * soft nproc 10240
    * hard nproc 10240
  • Edite o arquivo /etc/security/limits.d/90-nproc.conf
  • Adicione o seguinte para todos os usuários na parte inferior do arquivo e salve-o.
    * soft nofile 1024000
    * hard nofile 1024000
    * soft nproc 10240
    * hard nproc 10240
    root soft nproc unlimited

Definir open_files_limit em my.cnf (MySQL)

  • Editar arquivo /etc/my.cnf
  • Insira o seguinte em  [mysqld]  e salve.
    [mysqld]
    open_files_limit = 102400
  • Descubra se algum outro arquivo .conf está sendo usado com o MySQL que substitui os valores para limites abertos:
    Execute  systemctl status mysqldo comando e ele mostrará algo como este
    Drop-In:
    /etc/systemd/system/mariadb.service.d
    └─limits.conf
    Isso significa que há /etc/systemd/system/mariadb.service.d/limts.conf que é carregado com o MySQL Server.
    Edite o arquivo e adicione o seguinte
    [Service]
    LimitNOFILE=102400
  • Execute o seguinte comando para aplicar as alterações.
    systemctl daemon-reload && /scripts/restartsrv_mysql
  • Reinicie seu servidor.
    Após a reinicialização bem-sucedida do servidor, executaremos novamente as Consultas SQL abaixo.
    SHOW VARIABLES LIKE 'open_files_limit';
    Você deverá ver o seguinte: 

    +------------------+--------+
    | Variable_name    | Value  |
    +------------------+--------+
    | open_files_limit | 102400 |
    +------------------+--------+
    1 row in set (0.00 sec)

Com isso, aumentamos o ulimit open files e o MySQL open_files_limit.