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

Golang, mysql:Lỗi 1040:Quá nhiều kết nối

sql.Open không thực sự mở kết nối với cơ sở dữ liệu của bạn.

Một sql.DB duy trì một nhóm các kết nối đến cơ sở dữ liệu của bạn. Mỗi khi bạn truy vấn cơ sở dữ liệu của mình, chương trình của bạn sẽ cố gắng lấy kết nối từ nhóm này hoặc tạo một kết nối mới. Các kết nối này sẽ không được đưa trở lại nhóm sau khi bạn đóng chúng.

Đây là những gì rows.Close() hiện tại của bạn db.QueryRow("...") thực hiện điều tương tự trong nội bộ khi bạn gọi Scan(...) .

Vấn đề cơ bản là bạn đang tạo quá nhiều truy vấn, trong đó mỗi truy vấn cần một kết nối, nhưng bạn không đóng các kết nối của mình đủ nhanh. Bằng cách này, chương trình của bạn phải tạo một kết nối mới cho mỗi truy vấn.

Bạn có thể giới hạn số lượng kết nối tối đa mà chương trình của mình sử dụng bằng cách gọi SetMaxOpenConns trên sql.DB của bạn.

Xem http://go-database-sql.org/surctures.html để biết thêm thông tin.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. php:đảo ngược tác động của mysql_real_escape_string trên hệ nhị phân

  2. cột cập nhật mysql với giá trị từ bảng khác

  3. Sắp xếp bảng thẻ MYSQL

  4. Mệnh đề Where works không hoạt động trên tinyint

  5. MySQL:Chọn tất cả các ngày trong một phạm vi ngay cả khi không có hồ sơ nào