Mysql đóng kết nối sau khi truy vấn
Tôi đang cố gắng kết nối với phiên bản Cơ sở dữ liệu Amazon Aurora MySQL của mình và gặp phải lỗi "Quá nhiều kết nối". Giá trị kết nối tối đa cho phiên bản CSDL của tôi là bao nhiêu và làm cách nào để điều chỉnh giá trị này? Show
Mô tả ngắnNếu máy khách gặp phải lỗi "Quá nhiều kết nối" khi bạn cố gắng kết nối với phiên bản hoặc cụm cơ sở dữ liệu Amazon Aurora MySQL, thì điều này có nghĩa là tất cả các kết nối khả dụng đang được sử dụng bởi các máy khách khác. Điều này được xác định bởi tham số max_connections Bạn có thể thấy bất kỳ triệu chứng nào sau đây
Bạn có thể đạt đến giá trị max_connections vì những lý do sau
Trước khi bạn giải quyết lỗi kết nối tối đa, trước tiên hãy xem tất cả các chuỗi hiện đang chạy trên phiên bản CSDL của bạn. Sau đó, kích hoạt đăng nhập trên phiên bản DB của bạn Hiển thị các chuỗi hiện đang chạy trên phiên bản Aurora MySQL DBLệnh SHOW FULL PROCESSLIST cho biết các luồng nào hiện đang chạy trên phiên bản CSDL của bạn. Đăng nhập vào phiên bản CSDL của bạn rồi chạy truy vấn sau Bạn cũng có thể chạy truy vấn sau để nhận được tập hợp kết quả tương tự
Ghi chú. Bạn phải cấp cho tài khoản người dùng của mình đặc quyền quản trị cho máy chủ MySQL PROCESS để xem tất cả các luồng đang chạy trên phiên bản CSDL MySQL. Mặt khác, SHOW PROCESSLIST chỉ hiển thị các luồng được liên kết với tài khoản MySQL mà bạn đang sử dụng. Để biết thêm thông tin, hãy xem tài liệu MySQL về Đặc quyền do MySQL cung cấp Ghi chú. SHOW FULL PROCESSLIST và INFORMATION_SCHEMA. Các câu lệnh PROCESSLIST có thể ảnh hưởng tiêu cực đến hiệu suất vì chúng yêu cầu một mutex Cho phép đăng nhập trên phiên bản Aurora MySQL DBNghị quyếtGiải quyết lỗi kết nối tối đa bằng một trong các phương pháp sau
Chấm dứt các kết nối hiện có trên phiên bản CSDL của bạnChấm dứt phiên người dùng hoặc truy vấn hiện đang chạy trên phiên bản CSDL của bạn bằng cách chạy các lệnh rds_kill và rds_kill_query
Tăng số lượng kết nối tối đa tới phiên bản CSDL của bạnTăng số lượng kết nối tối đa tới phiên bản CSDL của bạn bằng các phương pháp sau
Ghi chú. Số lượng kết nối tối đa được phép đối với phiên bản CSDL Aurora MySQL được xác định bởi tham số max_connections trong nhóm tham số cấp phiên bản cho phiên bản CSDL. Xem ví dụ sau
Kiểm tra giá trị hiện tại của tham số max_connections cho phiên bản CSDL của bạn. Để thực hiện việc này, hãy kiểm tra nhóm tham số được đính kèm với phiên bản CSDL của bạn hoặc bằng cách chạy truy vấn sau
Tham số max_connections có các thông số kỹ thuật sau
Để biết thêm thông tin về giá trị mặc định của max_connections cho mỗi lớp phiên bản CSDL có sẵn cho Aurora MySQL, hãy xem Số kết nối tối đa tới một phiên bản CSDL Aurora MySQL Ghi chú. Các phiên bản Cơ sở dữ liệu MySQL của Aurora MySQL và Amazon Relational Database Service (Amazon RDS) có lượng chi phí bộ nhớ khác nhau. Giá trị max_connections có thể khác đối với các phiên bản Aurora MySQL và RDS MySQL DB sử dụng cùng một lớp phiên bản. Các giá trị được liệt kê chỉ áp dụng cho Aurora MySQL Các phương pháp hay nhất để điều chỉnh tham số max_connectionsĐảm bảo xem xét những điều sau đây khi làm việc với tham số max_connections cho phiên bản CSDL của bạn
Bạn cũng có thể xem xét các tham số kết nối MySQL sau để điều chỉnh
Ghi chú. Bài viết này không bao gồm các giá trị được đề xuất hoặc tùy chỉnh cho các tham số này vì các giá trị này thay đổi tùy theo từng trường hợp sử dụng Tôi có nên đóng kết nối MySQL sau mỗi truy vấn không?Việc đóng các kết nối đang mở và giải phóng các tập kết quả là tùy chọn. Tuy nhiên, bạn nên đóng kết nối ngay sau khi tập lệnh hoàn thành việc thực hiện tất cả các hoạt động cơ sở dữ liệu của mình, nếu tập lệnh vẫn còn nhiều việc phải xử lý sau khi nhận được kết quả.
MySQL có tự động đóng kết nối không?Lý do phổ biến nhất cho lỗi máy chủ MySQL đã biến mất là máy chủ đã hết thời gian chờ và đóng kết nối. Theo mặc định, máy chủ sẽ đóng kết nối sau 8 giờ nếu không có gì xảy ra . Bạn có thể thay đổi giới hạn thời gian bằng cách đặt biến wait_timeout khi khởi động mysqld.
Làm cách nào để đóng dòng lệnh kết nối MySQL?Bạn cũng có thể kết thúc phiên bằng cách phát hành câu lệnh EXIT hoặc (trong Unix) bằng cách nhập Ctrl-D . Cách bạn chỉ định tham số kết nối cho mysql cũng áp dụng cho các chương trình MySQL khác như mysqldump và mysqladmin.
Bạn có nên để mở kết nối cơ sở dữ liệu?Để có thời gian phản hồi nhanh và thông lượng cao, thực sự tốt nhất là giữ cho các kết nối cơ sở dữ liệu luôn mở và sử dụng lại chúng cho các yêu cầu tiếp theo . Hầu hết các khung cơ sở dữ liệu đều cung cấp một số loại cơ chế nhóm kết nối trong đó trình xử lý yêu cầu có thể nhận kết nối cơ sở dữ liệu cho công việc của nó và sau đó đưa nó trở lại nhóm. |