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.