sql >> Database >  >> RDS >> Mysql

PHP's PDO negeert de ATTR_TIMEOUT-optie voor MySQL wanneer de server niet kan worden bereikt

Zet gewoon

ini_set("default_socket_timeout", 2);

voor je PDO() connect string.

(Getest op Windows, zou ook goed moeten zijn op Linux.)

Waarom?

Dit door de handleiding najagen:

De mysqlnd driver gebruikt sockets voor de onderliggende verbinding, en om timeouts in te stellen moet je de socket (stream) timeout functies gebruiken. (Ref:http://php.net/manual/en/mysqlnd.notes. php )

Als je meer controle wilt, kun je misschien specifieker de eigenlijke socket besturen:ik heb dit niet getest omdat het alleen Unix is. Om de socket die mysqlnd gebruikt in te stellen, kun je de socket specificeren met ini-instellingen (Ref:http://php.net/manual/en/ref.pdo-mysql.connection.php )

Zie http://php. net/manual/en/ref.pdo-mysql.php#ini.pdo-mysql.default-socket over die instelling

Mogelijk kunt u dan de time-out instellen met http://php .net/manual/en/function.stream-set-timeout.php

Maar waarschijnlijk gemakkelijker om de standaard in te stellen en vervolgens opnieuw in te stellen als je klaar bent...



  1. Hoe interpreteer je het uitlegplan van een query?

  2. Een dag aftrekken van een datum in MariaDB

  3. MySql gebruiken MySQLMembershipProvider - autogenerateschema=true werkt niet?

  4. Php en MySQL met Highchart