Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Exceção PHP PDO + Aviso no MySQL foi embora?


Você definiu wait_timeout para 1 então você dorme 3, o que vai acontecer? O MySql fechará a conexão após um segundo e você receberá o erro "Mysql Server has been away" com a próxima instrução porque você dorme por 3.

http://dev.mysql.com /doc/refman/5.1/en/server-system-variables.html#sysvar_wait_timeout

editar

A pergunta é duplicada de MySQL error 2006:mysql servidor sumiu

editar 2

Causas deste erro:
  • low wait_timeout - solução:ping, reconecte ou aumente também
  • pacotes grandes - solução:ajuste max_allowed_packet em meu.cfg

PDO reconnect - simula ping no PDO Como faço ping no banco de dados MySQL e reconecto usando PDO

editar 3 pergunta atualizada

A única maneira (afaik) de se livrar desses avisos é definir o esperado (por exemplo, E_ERROR) relatório_de_erro nível. Você pode agrupar chamadas de pdo, por exemplo, para definir E_ERROR antes e redefinir para o padrão após a execução.

O PDO registra avisos/erros para fins de logs (sic!) para análises adicionais. O atributo que você definiu (por setAttribute ou construtor) altera apenas o tratamento/comportamento de erros do pdo - throw ou não:). Essas duas coisas estão separadas.