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

Lỗi MySQL Quá nhiều kết nối

Các nhà cung cấp dịch vụ lưu trữ chia sẻ thường cho phép một lượng nhỏ kết nối đồng thời cho cùng một người dùng.

Những gì mã của bạn làm là:

  • mở kết nối với máy chủ MySQL
  • làm công việc đó (tạo trang)
  • đóng kết nối ở cuối trang.

Bước cuối cùng, khi được thực hiện ở cuối trang không phải là bắt buộc :(trích dẫn mysql_close hướng dẫn sử dụng):

Nhưng lưu ý rằng bạn có thể không nên sử dụng các kết nối liên tục ...

Hai lời khuyên:

  • sử dụng mysql_connect bên trong mysql_pconnect (đã ổn đối với bạn)
  • Đặt tham số thứ tư của mysql_connect thành false (bạn đã chấp nhận được rồi, vì đó là giá trị mặc định) :(trích sách hướng dẫn):


Vậy thì điều gì có thể gây ra sự cố?

Có thể bạn đang cố gắng truy cập song song một số trang (ví dụ:sử dụng nhiều tab trong trình duyệt của bạn) , điều này sẽ mô phỏng nhiều người dùng sử dụng trang web cùng một lúc?

Nếu bạn có nhiều người dùng sử dụng trang web cùng lúc và mã giữa mysql_connect và việc đóng kết nối mất rất nhiều thời gian, điều đó có nghĩa là nhiều kết nối được mở cùng lúc ... Và bạn sẽ đạt đến giới hạn :-(

Tuy nhiên, vì bạn là người dùng duy nhất của ứng dụng, vì bạn được phép cho phép tối đa 200 kết nối đồng thời, có điều gì đó kỳ lạ đang xảy ra ...


Chà, đang nghĩ về " quá nhiều kết nối "và" max_connections "...

Nếu tôi nhớ không nhầm, max_connections không giới hạn số lượng kết nối bạn có thể mở đến Máy chủ MySQL, nhưng tổng số kết nối có thể được mở tới máy chủ đó, bởi bất kỳ ai kết nối với máy chủ đó .

Trích dẫn tài liệu của MySQL về Quá nhiều kết nối :

Vì vậy, trên thực tế, vấn đề có thể không đến từ bạn cũng như mã của bạn (thực ra thì có vẻ ổn) :có thể "chỉ" là bạn không phải là người duy nhất cố gắng kết nối với máy chủ MySQL đó (hãy nhớ, "lưu trữ được chia sẻ") và có quá nhiều người sử dụng nó cùng lúc ...

... Và nếu tôi đúng và đó là điều , bạn không thể làm gì để giải quyết vấn đề:miễn là có quá nhiều cơ sở dữ liệu / người dùng trên máy chủ đó và max_connection đó được đặt thành 200, bạn sẽ tiếp tục đau khổ ...


Như một phụ chú:trước khi quay lại GoDaddy hỏi họ về điều đó, sẽ rất tuyệt nếu ai đó có thể xác thực những gì tôi vừa nói ^^



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. xóa tệp bằng thủ tục MySQL

  2. Làm thế nào để cài đặt MySQL trên Windows 10? - Giải pháp một cửa của bạn để cài đặt MySQL

  3. Làm thế nào để buộc sử dụng lại các kết nối trong jdbc pool?

  4. Cách lưu trữ Ký tự Emoji trong Cơ sở dữ liệu MySQL

  5. Vùng chứa MySQL Docker không lưu dữ liệu vào hình ảnh mới