Você precisa verificar quais valores padrão existem para tempos limite:
mysql> show variables like '%timeout';
+----------------------------+-------+
| Variable_name | Value |
+----------------------------+-------+
| connect_timeout | 10 |
| delayed_insert_timeout | 300 |
| innodb_lock_wait_timeout | 50 |
| innodb_rollback_on_timeout | OFF |
| interactive_timeout | 60 |
| net_read_timeout | 30 |
| net_write_timeout | 60 |
| slave_net_timeout | 3600 |
| table_lock_wait_timeout | 50 |
| wait_timeout | 60 |
+----------------------------+-------+
10 rows in set (0.00 sec)
Normalmente, observo várias variáveis de tempo limite. Isso é muito imperativo se você usar o MySQL remotamente do MySQL Workbench, cliente mysql ou aplicativo PHP em um servidor de aplicativos que contate o MySQL em um servidor DB.
Aqui está o que a documentação do MySQL diz sobre uma dessas configurações:
- wait_timeout (Padrão 28800 [8 horas]): o número de segundos que o servidor aguarda atividade em uma conexão não interativa antes de fechá-lo. Esse tempo limite se aplica somente às conexões de arquivo de soquete TCP / IP e Unix, não às conexões feitas usando pipes nomeados ou memória compartilhada. Na inicialização do encadeamento, o valor wait_timeout da sessão é inicializado a partir do valor global wait_timeout ou do valor global interactive_timeout, dependendo do tipo de cliente (conforme definido pela opção de conexão CLIENT_INTERACTIVE para mysql_real_connect ()). Veja também interactive_timeout.
- interactive_timeout (Padrão 28800 [8 horas]): o número de segundos que o servidor aguarda atividade em uma conexão interativa antes de fechá-la. Um cliente interativo é definido como um cliente que usa a opção CLIENT_INTERACTIVE para mysql_real_connect (). Veja também wait_timeout.
- net_read_timeout (Padrão 30): o número de segundos para aguardar mais dados de uma conexão antes de interromper a leitura. Quando o servidor está lendo do cliente, net_read_timeout é o valor do tempo limite que controla quando cancelar. Quando o servidor está gravando no cliente, net_write_timeout é o valor do tempo limite que controla quando cancelar. Veja também slave_net_timeout.
- net_write_timeout (Padrão 60): o número de segundos para aguardar que um bloco seja gravado em uma conexão antes de interromper a gravação. Veja também net_read_timeout.
Certifique-se de que esses tempos limite estejam altos o suficiente para acomodar consultas que podem ser executadas por um período muito longo, o que pode incluir:
- Massa
UPDATEs
- Massa
DELETEs
ENABLE KEYS
em um grande MyISAM
Para lidar com consultas que continuam em execução depois que você perde o contato, é necessário executar KILL no ID do processo da consulta de execução longa. Mesmo com o comando KILL, você terá que aguardar qualquer consulta que esteja no meio de etapas intensivas em disco ou que tenham mutexes internos em andamento.