Điểm:0

Chuỗi truy vấn mysql quá dài

lá cờ za

Tôi đang gặp phải một hành vi mysql lạ xảy ra giữa hai máy ảo.

Khi tôi có chuỗi truy vấn dài hơn 1457 ký tự, kết nối tôi đang sử dụng bị treo.
Tôi đã nghĩ vấn đề là một truy vấn với rất nhiều kết quả nhưng sau đó phát hiện ra rằng chuỗi truy vấn không quan trọng.

Ví dụ:

select * from users where uname = "abcdeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffpooooooooooppppppppfooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooffffffseroieeeeuuwwwwwwwwwwwuii";

treo máy chủ.

Nếu tôi xóa một ký tự khỏi chuỗi đó, mysql sẽ trả về một tập bản ghi trống, như mong đợi. Không có người dùng nào như vậy và trường uname là varchar(64). Bảng, chỉ chứa một bản ghi.

Tôi đã cố gắng theo dõi ổ cắm và phát hiện ra rằng chuỗi truy vấn được truyền lại 20 lần và sau đó lưu lượng truy cập dừng nhưng máy khách không thoát và kết nối không bị ngắt/đóng.cd

192.168.0.111:43012 -> 192.168.0.112:mysql
    ...
    byte_sent:22614
    bytes_retrans:20260
    bytes_acked:329
    byte_received:8208
    segs_out:28
    segs_in:10
    data_segs_out:18
    data_segs_in:8
    ...

Cùng một truy vấn được thực hiện từ một phiên bản khác đến cùng một máy chủ, hoạt động hoàn hảo. Tôi đã thử ứng dụng khách đầu cuối mysql chính thức, ứng dụng khách đầu cuối thay thế và tập lệnh nhưng tôi nhận được kết quả tương tự.

lá cờ ua
Gửi báo cáo lỗi kèm theo ví dụ cụ thể tại bug.mysql.com
lá cờ us
Đây có thể là sự cố với cài đặt MTU trên giao diện mạng trên máy chủ. Có thể truy vấn kết thúc trong một phân đoạn TCP quá dài, sau đó bị hạt nhân loại bỏ.
Eineki avatar
lá cờ za
Cảm ơn vì lời đề nghị @RickJames. Rất khó để nộp một báo cáo lỗi. Sự cố được giới hạn ở một máy chủ vm khi nó tương tác với một máy khách vm cụ thể. Tôi đã sao chép hai vms và sự cố đã biến mất. Tôi đã khởi động lại hai vms gốc và sự cố vẫn tiếp diễn. Chỉ cần thay một trong hai máy thì sẽ không xảy ra sự cố.
lá cờ ua
@Eineki - Cảm ơn bạn đã thử. "máy khách" - máy khách dòng lệnh mysql? Hay cái gì khác?
Eineki avatar
lá cờ za
Có, @RickJames ứng dụng khách dòng lệnh mysql, mycli, một ứng dụng khách dòng lệnh thay thế được viết bằng python và một tập lệnh php rất đơn giản (kết nối, gửi truy vấn, truy xuất tập bản ghi trống và đóng kết nối) được viết có mục đích. Cùng một kết quả. Tôi bắt đầu nghĩ về mtu như #TeroKilkanen đã chỉ ra (chiều dài chuỗi đáng lẽ phải đặt chuông đó).

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.