Apenas coloque
ini_set("default_socket_timeout", 2);
antes de sua string de conexão PDO().
(Testado no Windows, também deve funcionar bem no Linux.)
Por quê?
Perseguindo isso através do manual:
O driver mysqlnd usa sockets para a conexão subjacente, e para definir os tempos limite você precisa usar as funções de tempo limite do socket (stream). (Ref:http://php.net/manual/en/mysqlnd.notes. php )
Se você quiser mais controle, poderá controlar mais especificamente o soquete real:não testei isso, pois é apenas unix. Para definir o soquete que o mysqlnd usa, você pode especificar o soquete usando as configurações ini (Ref:http://php.net/manual/en/ref.pdo-mysql.connection.php )
Veja http://php. net/manual/en/ref.pdo-mysql.php#ini.pdo-mysql.default-socket sobre essa configuração
Você pode definir o tempo limite usando http://php .net/manual/en/function.stream-set-timeout.php
Mas provavelmente é mais fácil definir o padrão e redefinir quando terminar ...