Zend: regler le timeout des connexions MySQL avec pdo_mysql

11Il peut parfois être utile d’augmenter ou de baisser la durée de timeout des connexions MySQL. Par exemple, il peut être intéressant de l’augmenter si certaines de vos requêtes MySQL n’aboutissent pas et si vous obtenez l’erreur « MySQL server went away ».

Ce réglage se fait en passant l’option PDO::ATTR_TIMEOUT (constante de la classe PDO qui vaut 2) au driver pdo_mysql. Cette option marchera aussi pour certains autres pilotes mais sa signification peut différer (avec sqlite par exemple).

Avec Zend, il faut définir cette option lors de la création de l’adapter soit en utilisant Zend_Db::factory soit en créant une nouvelle instance de Zend_Db_Adapter_Pdo_Mysql.

Exemple avec un timeout de 10 secondes en utilisant Zend_Db::factory:

      $driverOptions = array(
          PDO::ATTR_TIMEOUT => 10
      );

      $params = array(
        'host' => '127.0.0.1',
        'port' => '3306',
        'username' => 'user',
        'password' => 'password',
        'dbname' => 'my_db',
        'driver_options' => $driverOptions
      );
      $adapter = Zend_Db::factory('pdo_mysql', $params);

sources/docs:
PDO::setAttribute
documentation Zend_Db_Adapter

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *