Eu tinha lido errado o artigo de solução de problemas link corrigindo todos os parâmetros corrigidos
De uma instância do GCE, estou executando o seguinte na linha de comando
> mysql -udbase -p -DmyDb -hmyIp
>
> mysql> SELECT account, count(account)
> -> FROM 'headers'
> -> where labelIds='["SENT"]'
> -> group by account order by 2 desc limit 0,50;
Uma vez executado, monitoro o comando SQL em outro shell, verificando a lista de processos. Eu vejo o SQL, o processId e o tempo que ele está levando para executar.
Após este último teste, o processId mudou de Consulta para suspensão após 1172 segundos.
No entanto, o comando mysql não recebe a resposta, apenas fica lá, como se ainda estivesse esperando por alguma resposta do CloudSql.
Após um minuto ou dois, o processID desaparece da lista de processos, e ainda assim o comando mysql está lá, como se estivesse esperando.
Depois de um longo período de tempo (mais de duas horas, deixei durante a noite), finalmente consegui:
ERROR 2013 (HY000) na linha 1: Perda de conexão com o servidor MySQL durante a consulta
É como se a conexão entre o GCE e o CloudSQL fosse cortada, apenas que o cliente não percebesse isso.
De acordo com as recomendações de outro post, exagerei os números em
sudo / sbin / sysctl -w net.ipv4.tcp_keepalive_time = 1800 net.ipv4.tcp_keepalive_intvl = 1800 net.ipv4.tcp_keepalive_probes = 50
Mas a única coisa que isso pareceu fazer é prolongar o tempo entre a conclusão da consulta e o momento em que o cliente finalmente se desconecta.
Se net_read_timeout for aplicado, o cliente não deve dar o erro muito antes?
Obrigado pela sua ajuda.
Eu tinha lido errado o artigo de solução de problemas link corrigindo todos os parâmetros corrigidos