Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Tentando atualizar 640k linhas no mySQL obtém conexão perdida com o servidor MySQL durante a consulta


Há outro possível motivo para esse erro, que é o pool de conexão do ActiveRecord ceifeira . Quando ativado, o reaper verifica o pool de conexões em busca de conexões "mortas" e as fecha. Em meus testes, parece ser excessivamente zeloso e também fecha conexões perfeitamente vivas (geralmente aquelas que executam consultas um pouco maiores).

Tente limpar reaping_frequency da sua configuração de banco de dados (que o desativa) e veja se isso ajuda. Examine sua base de código para essa string e certifique-se de que ela não esteja definida (ou simplesmente removida!). Se você vir uma linha como config['reaping_frequency'] = ENV['DB_REAP_FREQ'] || 10 , saiba que o || 10 está, na verdade, definindo um padrão baixo de 10s. Esse padrão estava na base de código do Rails por um tempo, até que a alteração foi revertida devido a vários problemas, incluindo eliminar consultas de longa duração , mas ainda é recomendado pela Heroku .

Se desabilitar o reaper corrigir as coisas, eu recomendaria deixá-lo desabilitado. Rails não o define mais por padrão, e parece causar mais problemas do que resolver.

Eu tive um erro como o seu, e foi assim que o consertei. Pessoalmente, estou mantendo-o desativado. Escrevi sobre meu problema específico com mais detalhes no meu blog .