sql >> Base de Datos >  >> RDS >> Mysql

Excepción PHP PDO + Advertencia sobre MySQL ¿Se ha ido?

Estableces wait_timeout a 1 luego duermes 3, que pasara? MySql cerrará la conexión después de un segundo y obtendrá el error "Mysql Server se ha ido" con la siguiente declaración porque duerme por 3.

http://dev.mysql.com /doc/refman/5.1/en/variables-del-sistema-del-servidor.html#sysvar_wait_timeout

editar

La pregunta es un duplicado de Error de MySQL 2006:mysql el servidor se ha ido

editar 2

Causas de este error:

  • low wait_timeout - solución:hacer ping, volver a conectar o aumentarlo también
  • paquetes grandes - solución:ajustar max_allowed_packet en mi.cfg

Reconexión de PDO:simule ping en PDO -pdo">¿Cómo hago ping a la base de datos MySQL y me vuelvo a conectar usando PDO

editar 3 pregunta actualizada

La única forma (afaik) de deshacerse de estas advertencias es configurar lo esperado (por ejemplo, E_ERROR) informe_de_errores nivel. Podría envolver llamadas pdo, por ejemplo, para configurar E_ERROR antes y restablecer los valores predeterminados después de la ejecución.

PDO registra advertencias/errores con fines de registro (¡sic!) para análisis adicionales. El atributo que establece (por setAttribute o constructor) solo cambia el manejo/comportamiento de errores de pdo - lanzar o no :). Estas dos cosas están separadas.