Metti
ini_set("default_socket_timeout", 2);
prima della stringa di connessione PDO().
(Testato su Windows, dovrebbe andare bene anche su Linux.)
Perché?
Inseguendo questo attraverso il manuale:
Il driver mysqlnd utilizza i socket per la connessione sottostante e per impostare i timeout è necessario utilizzare le funzioni di timeout del socket (stream). (Rif.:http://php.net/manual/en/mysqlnd.notes. php )
Se desideri un maggiore controllo, potresti essere in grado di controllare in modo più specifico il socket effettivo:non l'ho testato poiché è solo unix. Per impostare il socket utilizzato da mysqlnd, puoi specificare il socket utilizzando le impostazioni ini (Rif:http://php.net/manual/en/ref.pdo-mysql.connection.php )
Vedi http://php. net/manual/en/ref.pdo-mysql.php#ini.pdo-mysql.default-socket su quell'impostazione
Potresti quindi essere in grado di impostare il timeout utilizzando http://php .net/manual/en/function.stream-set-timeout.php
Ma probabilmente è più facile impostare le impostazioni predefinite e quindi ripristinare una volta terminato...