2013-04-12 6 views
5

Mój program działa z runghc, ale ten sam program konsekwentnie kończy się niepowodzeniem, gdy skompilowany z błędem "Utracono połączenie z serwerem MySQL podczas zapytania". Błąd nie jest związany z długotrwałym zapytaniem (jest to CREATE VIEW na małej tabeli). Nie ma nic w dzienniku błędów MySQL i log_warnings = 1. Środowisko - ubuntu (13.04 ;-), lokalna baza danych)HDBC ODBC MySQL - zapytanie nie powiedzie się po skompilowaniu

+0

Spróbuj ustawić log_warnings = 2 (http://dev.mysql.com/doc/refman/5.0/en/server-options.html#option_mysqld_log-warnings). Jakie OS, jaka wersja ghc? Czy możesz zredukować swój kod do prostego przykładu, który nadal wykazuje problem i publikuje ten kod? –

+0

Dzięki za sugestię. – hdb3

+0

Dzięki za sugestię. Mam bardzo prosty przykład, który kończy się niepowodzeniem: http://pastebin.com/9vrStfs7 Przełączyłem się z HDBC.ODBC na HDBC.MySQL, ale problem pozostaje. Przełączam się, aby korzystać z dostępu do sieci 9on loopback i/f), ten sam problem, ale teraz widzę ruch! Ustawiam log_warnings = 2, Brak nowych wiadomości w pliku dziennika, jednak znalazłem w /var/log/mysql/error.log następująco: "[Ostrzeżenie] Przerwane połączenie 243 do db: (Otrzymałem błąd podczas czytania pakietów komunikacyjnych) " Ponadto, ślad tshark pkt pokazuje, że klient rozłącza się, zanim serwer odpowie (około 200 ms). Z runghc odpowiedź serwera wynosi 300 mS – hdb3

Odpowiedz

3

HDBC.ODBC koniecznością stosowanie „withRTSSignalsBlocked” chronić wszystkie działania dostępu do bazy danych, lub ryzyko uszkodzeń losowych takich jak opiszę. Zostało to skutecznie potwierdzone przez autora biblioteki.

+1

hdb3: masz na myśli 'HDBC.MySQL', a nie ODBC, prawda? – sclv

+0

Zawinęłem połączenie [** 'Database.HDBC.ODBC' **] (http://hackage.haskell.org/package/HDBC-odbc-2.2.3.0/docs/Database-HDBC-ODBC.html) i zapytanie w [** 'withRTSSignalsBlocked' **] (http://hackage.haskell.org/package/HDBC-mysql-0.6.5.1/docs/Database-HDBC-MySQL.html#v:withRTSSignalsBlocked) z [* * 'Database.HDBC.MySql' **] (http://hackage.haskell.org/package/HDBC-mysql-0.6.5.1/docs/Database-HDBC-MySQL.html) i błędne zachowanie środowiska wykonawczego *** zniknął! *** –