Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

ActiveRecord ::ConnectionTimeoutError:không thể lấy kết nối cơ sở dữ liệu trong vòng 5.000 giây (đã đợi 5.000 giây)

Tôi đã gặp vấn đề tương tự do quá nhiều kết nối mở đến cơ sở dữ liệu. Điều này có thể xảy ra khi bạn có các truy vấn cơ sở dữ liệu bên ngoài bộ điều khiển (trong mô hình, bưu phẩm, trình tạo pdf, ...).

Tôi có thể sửa nó bằng cách gói các truy vấn đó trong khối này, khối này sẽ tự động đóng kết nối.

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

Vì Puma hoạt động đa luồng, nên kích thước hồ bơi (như eabraham đã đề cập) cũng có thể là một hạn chế. Cố gắng tăng nó (một chút) ...

Tôi hy vọng điều này sẽ hữu ích!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Khi bạn có một trường TEXT trong MySQL hoặc PostgreSQL, bạn có nên đặt nó trong một bảng riêng không?

  2. Làm cách nào để tìm bảng của tôi là MyISAM hay Innodb

  3. Làm thế nào để đặt lại mật khẩu gốc trong MySQL 8.0.11?

  4. Sử dụng utf8mb4 với php và mysql

  5. Cách sử dụng động nhiều cơ sở dữ liệu cho một mô hình trong CakePHP