Solo pon
ini_set("default_socket_timeout", 2);
antes de su cadena de conexión PDO().
(Probado en Windows, también debería funcionar bien en Linux).
¿Por qué?
Persiguiendo esto a través del manual:
El controlador mysqlnd usa sockets para la conexión subyacente, y para establecer tiempos de espera, debe usar las funciones de tiempo de espera de socket (flujo). (Ref:http://php.net/manual/en/mysqlnd.notes. php )
Si desea más control, entonces podría controlar más específicamente el zócalo real:no lo he probado ya que es solo para Unix. Para configurar el socket que usa mysqlnd, puede especificar el socket usando la configuración ini (Ref:http://php.net/manual/en/ref.pdo-mysql.connection.php )
Consulte http://php. net/manual/en/ref.pdo-mysql.php#ini.pdo-mysql.socket-predeterminado sobre esa configuración
Es posible que luego pueda configurar el tiempo de espera usando http://php .net/manual/en/function.stream-set-timeout.php
Pero probablemente sea más fácil establecer el valor predeterminado y luego restablecer una vez que haya terminado...