Nếu bạn dành thời gian để chạy nhiều truy vấn MySQL, bạn có thể bắt gặp Error Code: 2013. Lost connection to MySQL server during query
. Bài viết này cung cấp một số gợi ý về cách tránh hoặc khắc phục sự cố.
Tại sao điều này xảy ra
Lỗi này xuất hiện khi kết nối giữa máy khách MySQL và máy chủ cơ sở dữ liệu của bạn hết lần. Về cơ bản, phải mất quá nhiều thời gian để truy vấn trả về dữ liệu để kết nối bị hủy.
Hầu hết các công việc của tôi liên quan đến di chuyển nội dung. Các dự án này thường liên quan đến việc chạy các truy vấn MySQL phức tạp mất nhiều thời gian để hoàn thành. Tôi đã tìm thấy bảng WordPress WP_PostMeta đặc biệt rắc rối vì một trang web có hàng chục ngàn bài đăng có thể dễ dàng có hàng trăm nghìn mục Postmeta. Tham gia các bộ dữ liệu lớn từ các loại bảng này có thể đặc biệt chuyên sâu.
Tránh vấn đề bằng cách tinh chỉnh các truy vấn của bạn
Trong nhiều trường hợp, bạn có thể tránh được vấn đề hoàn toàn bằng cách tinh chỉnh các truy vấn SQL của bạn. Ví dụ: thay vì tham gia tất cả các nội dung của hai bảng rất lớn, hãy thử lọc các bản ghi mà bạn không cần. Nếu có thể, hãy thử giảm số lượng tham gia trong một truy vấn duy nhất. Điều này nên có thêm lợi ích của việc 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 đã phát hiện ra rằng nội dung biến đổi 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 hết thời gian.
Viết lại các truy vấn không phải là tùy chọn luôn luôn để bạn có thể thử các cách giải quyết 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 cho thấy 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 các 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
Bạn có thể chỉnh sửa tùy chọn trình soạn thảo SQL trong MySQL Workbench:
- Trong menu ứng dụng, chọn Chỉnh sửa> Tùy chọn> Trình soạn thảo SQL.
- Tìm phần phiên MySQL và tăng giá trị thời gian đọc kết nối DBMS.
- Lưu cài đặt, hoàn toàn MySQL Workbench và mở lại kết nối.
Navicat
Cách chỉnh sửa tùy chọn Navicat:
- Nhấp chuột vào một mục kết nối và chọn Thuộc tính kết nối> Chỉnh sửa kết nối.
- Chọn tab nâng cao và tăng giá trị thời gian chờ ổ cắm.
Dòng lệnh
Trên dòng lệnh, sử dụng biến connect_timeout
.
Kịch bản Python
Nếu bạn đang chạy truy vấn từ tập lệnh Python, hãy sử dụng đối số kết nối: con.query['SET GLOBAL connect_timeout=6000']
con.query['SET GLOBAL connect_timeout=6000']
Chúng tôi đang phải đối mặt với vấn đề trong bản sao rằng chúng tôi không gặp bất kỳ lỗi nào khi hiển thị trạng thái nô lệ \ g đầu ra thay vì đối mặt với vấn đề sau trong tệp nhật ký lỗi
[ERROR] Error reading packet from server: Lost connection to MySQL server during query [ server_errno=2013]
Dữ liệu cho một số bảng không được điền từ Master Server và Slave không cập nhật nó từ chính.
Chúng tôi đang sử dụng Windows 2008 R2 và trên phiên bản chính là 5.6.19 và trên nô lệ là 5.6,26
Mọi thứ trông cho đến nay như dưới đây: 1. Thay đổi giá trị nhịp tim chính nhưng nó không hoạt động 2. Đã tăng SLAVE_NET_TIMOUT, tăng MAX_ALLOWED_PACKET trên Master và Slave 3. Xây dựng nô lệ 4. Quyền của người dùng cũng đúng 5.P Từ cả hai máy chủ cũng hoạt động và tường lửa Windows đã tắt
1. Change the master heartbeat value but it didn't
work
2.increased the slave_net_timeout, Increased max_allowed_packet on master and slave
3.Rebuilding Slave
4.Slave user permissions are also correct
5.Ping and telnet from both server also works and windows firewall is off
Bất kỳ sự giúp đỡ nào cũng được đánh giá cao
- Lượt xem
- Thêm bình luận
- Các tập tin
- Nhà phát triển
- Chỉnh sửa đệ trình
- Xem nhật ký tiến trình
- Đóng góp
Description: I have a two way replication on 2 servers. AB On each server I have the following entry in the server.err file every hour, if there is no activity[processing queries] on it alternatively if the position of the log event is the same as one hour before: ------------------------------------------------------------------------------- 040915 9:36:49 Error reading packet from server: Lost connection to MySQL server during query [server_errno=2013] 040915 9:36:49 Slave I/O thread: Failed reading log event, reconnecting to retry, log 'obelix-bin.006' position 79 040915 9:36:49 Slave: connected to master ':3306',replication resumed in log 'obelix-bin.006' at position 79 040915 10:36:50 Error reading packet from server: Lost connection to MySQL server during query [server_errno=2013] 040915 10:36:50 Slave I/O thread: Failed reading log event, reconnecting to retry, log 'obelix-bin.006' position 79 040915 10:36:50 Slave: connected to master ':3306',replication resumed in log 'obelix-bin.006' at position 79 ------------------------------------------------------------------------------- This Error has no impact on the Replication. It works without problems. How to repeat: - Suggested fix: -