MySQL używa różnych zmiennych limitu czasu na różnych etapach.
- Po nawiązaniu połączenia używa
connection_timeout
- Gdy czeka na następne zapytanie, używa
wait_timeout
- Gdy nie otrzyma zapytania w określonym czasie, używa
net_read_timeout
inet_write_timeout
- I tak dalej...
Zwykle net_read_timeout
nie powinno to stanowić problemu, ale gdy masz problemy z siecią, zwłaszcza podczas komunikacji z serwerem, ten limit czasu może się podnieść, ponieważ zamiast pojedynczego pakietu dla zapytania, który wysłałeś do Bazy danych, MySQL czeka na całe zapytanie read, ale z powodu problemu z siecią nie otrzymuje reszty zapytania. MySQL nie pozwala klientowi komunikować się z serwerem, dopóki wynik zapytania nie zostanie całkowicie pobrany.
Nie możesz poprawnie zmienić tych dwóch zmiennych, które w końcu są zmiennymi sesji.
Również z MySQL Doc możesz przeczytać
net_read_timeout
:
net_write_timeout
:
Możesz sprawdzić zmienną defaults w samym MySQL za pomocą
> mysql show variables like '%timeout';