sql >> Database teknologi >  >> RDS >> Mysql

ActiveRecord::ConnectionTimeoutError:kunne ikke opnå en databaseforbindelse inden for 5.000 sekunder (ventede 5.000 sekunder)

Jeg havde de samme problemer, som var forårsaget af for mange åbne forbindelser til databasen. Dette kan ske, når du har databaseforespørgsler uden for en controller (i en model, mailer, pdf-generator, ...).

Jeg kunne rette det ved at pakke disse forespørgsler i denne blok, som lukker forbindelsen automatisk.

ActiveRecord::Base.connection_pool.with_connection do
  # your code
end

Da Puma fungerer multi-threaded, kan poolstørrelsen (som eabraham nævnte) også være en begrænsning. Prøv at øge den (lidt)...

Jeg håber, at dette hjælper!



  1. Sådan forbinder du MySQL til Java-program

  2. Validering mislykkedes for forespørgsel til metode JPQL

  3. Håndtering af store transaktioner med streaming replikering og MariaDB 10.4

  4. Spring Boot CRUD Eksempel med MySQL