sql >> Database >  >> RDS >> Mysql

Als u 640k rijen in mySQL probeert bij te werken, wordt de verbinding met de MySQL-server verbroken tijdens het zoeken

Er is nog een mogelijke reden voor deze fout, en dat is de ActiveRecord-verbindingspool maaimachine . Indien ingeschakeld, scant de reaper de verbindingspool op "dode" verbindingen en sluit deze. Bij mijn testen lijkt het overijverig te zijn en sluit het ook perfect levende verbindingen (over het algemeen die met iets grotere zoekopdrachten).

Probeer reaping_frequency te wissen uit uw DB-configuratie (waardoor het wordt uitgeschakeld) en kijk of dat helpt. Scan je codebase op die string en zorg ervoor dat deze niet is ingesteld (of gewoon is verwijderd!). Als u een regel ziet zoals config['reaping_frequency'] = ENV['DB_REAP_FREQ'] || 10 , weet dat de || 10 is eigenlijk het instellen van een lage standaardwaarde van 10s. Dit patroon zat een tijdje in de rails-codebase, totdat de wijziging teruggedraaid werd omdat het verschillende problemen veroorzaakt, waaronder het doden van langlopende zoekopdrachten , maar wordt nog steeds aanbevolen door Heroku .

Als het uitschakelen van de reaper dingen oplost, raad ik aan om het uitgeschakeld te laten. Rails stelt het niet langer standaard in en het lijkt meer problemen te veroorzaken dan op te lossen.

Ik had een fout zoals die van jou, en zo heb ik het opgelost. Persoonlijk houd ik het uitgeschakeld. Ik schreef meer in detail over mijn specifieke probleem op mijn blog .



  1. Een rapport groeperen op meerdere velden in Access 2016

  2. MySQL utf8mb4, fouten bij het opslaan van emoji's

  3. Update uw PostgreSQL-wachtwoord in Linux

  4. mysql_fetch_assoc():opgegeven argument is geen geldige MySQL-resultaatbron