Chương trình của tôi chạy với runghc nhưng chương trình tương tự không thành công khi được biên dịch với lỗi "Mất kết nối với máy chủ MySQL trong khi truy vấn". Lỗi không được liên kết với một truy vấn chạy dài (đó là một khung nhìn CREATE trên một bảng nhỏ). Không có gì trong nhật ký lỗi MySQL và log_warnings = 1. Môi trường - ubuntu (13,04 ;-), cơ sở dữ liệu địa phương)HDBC ODBC MySQL - truy vấn chỉ thất bại khi biên soạn
Trả lời
HDBC.ODBC phải sử dụng 'withRTSSignalsBlocked' để bảo vệ tất cả các hành động truy cập cơ sở dữ liệu, hoặc thất bại ngẫu nhiên nguy cơ như tôi mô tả. Điều này đã được xác nhận một cách hiệu quả bởi tác giả của thư viện.
hdb3: bạn có nghĩa là 'HDBC.MySQL' không ODBC, phải không? – sclv
Tôi đã bao gồm một [** 'Database.HDBC.ODBC' **] (http://hackage.haskell.org/package/HDBC-odbc-2.2.3.0/docs/Database-HDBC-ODBC.html) kết nối & truy vấn trong [** 'withRTSSignalsBlocked' **] (http://hackage.haskell.org/package/HDBC-mysql-0.6.5.1/docs/Database-HDBC-MySQL.html#v:withRTSSignalsBlocked) từ [* * 'Database.HDBC.MySql' **] (http://hackage.haskell.org/package/HDBC-mysql-0.6.5.1/docs/Database-HDBC-MySQL.html) và hành vi thời gian chạy thất thường *** biến mất!*** –
Thử đặt log_warnings = 2 (http://dev.mysql.com/doc/refman/5.0/en/server-options.html#option_mysqld_log-warnings). Hệ điều hành gì, phiên bản nào của ghc? Bạn có thể giảm mã của mình xuống một ví dụ đơn giản mà vẫn hiển thị vấn đề và đăng mã đó không? –
Cảm ơn bạn đã đề xuất. – hdb3
Cảm ơn bạn đã đề xuất. Tôi có một ví dụ rất đơn giản không thành công: http://pastebin.com/9vrStfs7 Tôi đã chuyển từ HDBC.ODBC thành HDBC.MySQL nhưng vẫn còn sự cố. Tôi chuyển sang sử dụng truy cập mạng 9on loopback i/f), cùng một vấn đề nhưng bây giờ tôi có thể thấy lưu lượng truy cập! Tôi đặt log_warnings = 2, Không có thư mới trong tệp nhật ký, tuy nhiên tôi tìm thấy trong /var/log/mysql/error.log như sau: "[Cảnh báo] Đã hủy kết nối 243 thành db: (Có lỗi khi đọc gói truyền thông) " Ngoài ra, dấu vết tshark pkt cho thấy máy khách ngắt kết nối trước khi máy chủ phản hồi (khoảng 200mS). Với runghc, phản hồi của máy chủ là 300 mS – hdb3