Mất kết nối với máy chủ mysql trong khi truy vấn là gì?
Bạn có thể tránh hoàn toàn vấn đề bằng cách tinh chỉnh các truy vấn SQL của mình. Ví dụ: thay vì nối tất cả nội dung của hai bảng rất lớn, hãy thử lọc ra các bản ghi mà bạn không cần. Nếu có thể, hãy thử giảm số lần tham gia trong một truy vấn. Điều này sẽ có thêm lợi ích là làm cho truy vấn của bạn dễ đọc hơn. Đối với mục đích của tôi, tôi nhận thấy rằng việc chuẩn hóa nội dung thành các bảng làm việc có thể cải thiện hiệu suất đọc. Điều này tránh thời gian chờ Show Viết lại truy vấn không phải lúc nào cũng là tùy chọn nên bạn có thể thử các giải pháp thay thế phía máy chủ và phía máy khách sau đây Giải pháp phía máy chủ Nếu bạn là quản trị viên cho máy chủ MySQL của mình, hãy thử thay đổi một số giá trị. Tài liệu MySQL đề xuất tăng giá trị net_read_timeout hoặc connect_timeout trên máy chủ Giải pháp phía khách hàng Bạn có thể tăng giá trị thời gian chờ của máy khách MySQL nếu bạn không có quyền truy cập quản trị viên vào máy chủ MySQL MySQL Workbench
Điều chỉnh các biến thời gian chờ trong tệp cấu hình MySQL của bạn Ngoài ra, nếu bạn đang sử dụng tệp cấu hình MySQL để kiểm soát cài đặt kết nối của mình thì bạn có thể chỉnh sửa tệp cấu hình my. cnf (Mac) được sử dụng bởi kết nối MySQL của bạn Mở tệp cấu hình đó bằng trình soạn thảo văn bản bạn chọn và thử tìm các biến sau trong mysqld
Các biến wait_timeout và Interactive_timeout không gây ra bất kỳ sự cố nào vì chúng thường có giá trị mặc định là 28800 giây (hoặc 8 giờ) Để ngăn lỗi hết thời gian chờ, bạn cần tăng giá trị biến connection_timeout và net_read_timeout Loại lỗi này xảy ra khi kết nối giữa máy khách và máy chủ vượt quá giá trị thời gian chờ đã chỉ định Ví dụ: nếu bạn có một truy vấn dài cần nhiều thời gian để hoàn thành việc thực thi, MySQL sẽ ngắt kết nối tới máy chủ Lấy ví dụ, khi xuất một cơ sở dữ liệu lớn, tùy thuộc vào phương thức xuất và dữ liệu được xuất, quá trình này có thể mất nhiều thời gian để hoàn tất. Để ngăn chặn các sự cố trên máy chủ, MySQL có thể ngắt kết nối này trước khi quá trình hoàn tất Một nguyên nhân phổ biến khác của loại lỗi này là các thao tác nối phức tạp MySQL Hiển thị giá trị thời gian chờNhư đã đề cập, bạn có thể khắc phục loại lỗi này bằng cách tăng thời lượng thời gian chờ ở phía máy chủ Các giá trị thời gian chờ được lưu trữ trong các biến Wait_timeout và Interactive_timeout. Chúng tôi có thể tìm nạp các giá trị hiện tại như được hiển thị trong các truy vấn sau mysql> hiển thị các biến toàn cục như 'interactive_timeout'; Kết quả đầu ra như sau +---------------------+-------+ Kết quả đã cho hiển thị giá trị mặc định của biến Interactive_timeout. Giá trị này xác định khoảng thời gian, tính bằng giây, mà máy chủ đợi một hoạt động trên một phiên đang hoạt động trước khi chấm dứt hoạt động đó Chúng ta cũng có thể lấy giá trị của biến wait_timeout là mysql> hiển thị các biến toàn cục như 'wait_timeout'; bảng kết quả +---------------+-------+ Biến này đặt thời lượng mà máy chủ MySQL chờ một hoạt động trong phiên không tương tác Khắc phục lỗi mất kết nối MySQL bằng cách cập nhật biến thời gian chờĐể khắc phục loại lỗi này, chúng ta có thể cập nhật giá trị của hai biến đã thảo luận trước đó. Chúng ta có thể chạy truy vấn như sau mysql> ĐẶT @@global. Interactive_timeout=43200; Lệnh trước sẽ cập nhật giá trị của biến Interactive_timeout thành 43200 giây Để cập nhật tham số wait_timeout, hãy chạy lệnh sau mysql> ĐẶT @@global. wait_timeout=43200; Bạn xong việc rồi. Bạn có thể thử chạy lại truy vấn đã hẹn giờ của mình Phần kết luậnTrong bài đăng này, chúng tôi đã thảo luận về nguyên nhân gây ra lỗi mất kết nối khi làm việc với MySQL và các bước bạn có thể thực hiện để khắc phục chúng. Tuy nhiên, hãy chú ý đến các truy vấn của bạn hoặc phân đoạn chúng thành các khối hiệu quả Tại sao truy vấn bị mất kết nối với máy chủ MySQL?Lỗi trên thường xảy ra khi bạn chạy một truy vấn MySQL dài hoặc phức tạp kéo dài hơn vài giây . Để khắc phục lỗi, bạn có thể cần thay đổi cài đặt chung liên quan đến thời gian chờ trong máy chủ cơ sở dữ liệu MySQL của mình.
Làm cách nào để khắc phục thời gian chờ kết nối trong MySQL?Mạng hỗ trợ
. Log in to your server by using Secure Shell® (SSH). Sử dụng lệnh sudo để chỉnh sửa. cnf , tệp cấu hình MySQL®. Xác định vị trí cấu hình thời gian chờ và thực hiện các điều chỉnh phù hợp với máy chủ của bạn. |