Ứng dụng của tôi cần thực hiện kết nối khá thường xuyên với cơ sở dữ liệu mysql trên máy khác. Tuy nhiên tôi nhận được lỗi thường xuyên về kết nối; Tôi thường có thể kết nối nhưng sau nhiều lần thử lại. Thông báo lỗi tôi nhận được là:
Mysql.mysql(): Couldn't connect to SQL-server: Lost connection to MySQL server at 'reading authorization packet', system error: 2
Tôi đã đọc thông tin ở đây: http://dev.mysql.com/doc/refman/5.0/en/error-lost-connection.html và cả những bình luận về lỗi http://bugs.mysql.com/bug .php? id = 28359 .
Có khá nhiều kết nối bị hủy bỏ như bạn có thể thấy:
mysql HIỂN THỊ TÌNH TRẠNG TOÀN CẦU THÍCH 'Abort_connects'; + ------------------ + ------- + | Biến_ame | Giá trị | + ------------------ + ------- + | Abort_connects | 2540 | + ------------------ + ------- +
Tôi đã tăng thời gian chờ từ 5 đến 15 giây:
mysql hiển thị các biến như 'connect_timeout'; + ----------------- + ------- + | Biến_ame | Giá trị | + ----------------- + ------- + | kết nối_timeout | 15 | + ----------------- + ------- +
nhưng điều này đã không giúp được gì. Bất kỳ đề xuất làm thế nào để gỡ lỗi này? Nó làm cho tương tác cơ sở dữ liệu chậm khủng khiếp khi trung bình phải cố gắng kết nối 5 lần trước khi nó hoạt động.
Tôi vẫn chưa cố gắng duy trì kết nối mở trong suốt vòng đời của ứng dụng, điều đó có tốt hơn không? Làm cách nào để ngăn kết nối đóng lại?
Nếu nó giúp máy tính giải quyết vấn đề là Windows 7 32 bit, trong khi máy chủ mysql có trên Debian Linux.