O MySQL usa diferentes variáveis de tempo limite para vários estágios.
- Quando a conexão é estabelecida, ela usa
connection_timeout
- Quando aguarda a próxima consulta, usa
wait_timeout
- Quando não recebe a consulta no horário específico, usa
net_read_timeout
enet_write_timeout
- E assim por diante...
Normalmente
net_read_timeout
não deve ser um problema, mas quando você tem algum problema de rede, especialmente ao se comunicar com o servidor, esse tempo limite pode ser aumentado porque, em vez de um único pacote para a consulta, que você enviou para o banco de dados, o MySQL espera que toda a consulta seja read mas, devido ao problema de rede, não recebe o restante da consulta. O MySQL não permite que o cliente converse com o servidor até que o resultado da consulta seja obtido completamente. Você não pode alterar adequadamente essas duas variáveis, que afinal são variáveis de sessão.
Também no MySQL Doc você pode ler
net_read_timeout
:net_write_timeout
:Você pode verificar a variável defaults dentro do próprio MySQL usando
> mysql show variables like '%timeout';