Erros de Comunicação / Comunicação Abortada
A partir do MySQL 3.23.40
você só recebe o erro de Conexão abortada
se você iniciar o mysqld
com --warnings
.
Se você encontar erros como o seguinte em seu log de erro.
010301 14:38:23 Aborted connection 854 to db: 'users' user: 'josh'
See "O Log de Erros".
Isto significa que algum dos seguintes problemas ocorreu:
- O programa cliente não chamou
mysql_close()
antes de sair. - O cliente tem esperado mais que
wait_timeout
ouinteractive_timeout
sem fazer nenhuma requisição. Leia "SHOW VARIABLES
". Leia "SHOW VARIABLES
". - O programa cliente finalizou abuptamente no meio de uma transferência.
Quando o descrito acima ocorrer, a variável Aborted_clients
do servidor é incrementeda.
A variável Aborted_connects
do servidor é incrementeda quando:
- Quando um pacote de conexão não contém a informação correta.
- Quando o usuário não tiver privilégios para conectar ao banco de dados.
- Quando o usuário usar uma senha errada.
- Quando levar mais de
connect_timeout
segundos para obter um pacote de conexão. Leia "SHOW VARIABLES
".
Note que o descrito acima podia indicar que alguém está tentando derrubar o seu banco de dados.
Outras razões para problemas com Clientes abortados / Conexões abortadas.
- O uso de protocolo Ethernet com Linux, tanto half quanto full duplex. Muitos drivers de Ethernet do Linux possui este bug. Você deve testá-lo transferindo um arquivo enorme via ftp entre estas duas máquinas. Se uma transferência entra no modo de estouro-pausa-esoturo-pausa... então você está experimentando uma síndorme de duplex no Linux A única solução é trocar o modo duplex, tanto da placa de rede quanto do Hub/Switch entre full duplex e half duplex e testar os resultados para decidir qual é a melhor configuração.
- Alguns problemas com a biblioteca de threads interrompe uma leitura.
- TCP/IP mal configurado.
- Defeitos na rede, hub, switch, cabos, ... Isto pode ser diagnosticado de forma apropriada aomente através de reposição de hardware.
max_allowed_packet
é muito pequeno ou a consulta exige memória livre que você alocou paramysqld
. Leia Seção A.2.9, "Erro:Packet too large
".