Como solutionar o erro MySQL "Can't open file './*.frm' (errno 24)"

Algumas vezes, quando você construir um servidor MySQL sem considerar pequenos detalhes e você quer colocá-lo on-line o mais rápido possível, isso vai afeta a longo prazo pois você vai acabar fazendo manutenção emergente indesejada ou sua instâncias MySQL ficarão indisponíveis. Devido às razões expostas no parágrafo anterior o erro "Can't open file: './*.frm' (errno: 24)" erro será exibida.

  • Por que recebemos este erro?
  • Bem, este um erro comum quando você instala tudo usando os parâmetros padrão. O erro "Can't open file: './*.frm' (errno: 24)" aparece quando o sistema operacional (host) atingiu o valor maxim de 'arquivos abertos' disponível para o usuário que está executando o serviço MySQL.
  • Como encontrar o valor máximo de arquivos abertos para o meu usuário do MySQL?
  • Você precisa fazer o login como o usuário MySQL e execute o seguinte comando:
    [mysql@dch008tmp]# ulimit -n
    1024
  • Como podemos alterar o valor do max arquivos abertos valor para o usuário MySQL? Para isso, você precisa fazer login como usuário root e edite o arquivo "/etc/security/limits.conf". Aqui está como eu faço isso para meu MySQL para que ele seja capaz de abrir 25.000 arquivos.
    mysql            hard    nofile          25000
  • Aonde :
  • nofile - max número de arquivos abertos hard - para impor limites rígidos
  • Para que o MySQL ser capaz aplicar o novo valor do parâmetro você precisa para reiniciar sua instância MySQL.
  • Após o reinício do check-lo open_files_limit valor usando a sintaxe abaixo. Também i bom saber que a sua instância MySQL aplicar os valores dos parâmetros de acolhimento, se você não especificá-lo em seu my.cnf arquivo de parâmetro MySQL.
    mysql> show variables like 'open_files_limit';
    +------------------+-------+
    | Variable_name    | Value |
    +------------------+-------+
    | open_files_limit | 25000 |
    +------------------+-------+
    1 row in set (0.00 sec)
  • If you want to make this parameter available to your my.cnf file just add the values bellow to your my.cnf file.
  • Before doing this you should check the value on the host to make sure that your MySQL parameter won't pass the host one.
    open-files-limit               = 25000
    I hope this was helpfull.