sql >> Database teknologi >  >> RDS >> Mysql

PHP's PDO ignorerer indstillingen ATTR_TIMEOUT for MySQL, når serveren ikke kan nås

Bare læg

ini_set("default_socket_timeout", 2);

før din PDO()-forbindelsesstreng.

(Testet på Windows, burde også være fint på Linux.)

Hvorfor?

Jager dette gennem manualen:

Mysqlnd-driveren bruger sockets til den underliggende forbindelse, og for at indstille timeouts skal du bruge socket (stream) timeout-funktionerne. (Ref:http://php.net/manual/en/mysqlnd.notes. php )

Hvis du vil have mere kontrol, så kan du måske styre mere specifikt selve stikket:Jeg har ikke testet dette, da det kun er unix. For at indstille den socket, mysqlnd bruger, kan du angive socket ved hjælp af ini-indstillinger (Ref:http://php.net/manual/en/ref.pdo-mysql.connection.php )

Se http://php. net/manual/en/ref.pdo-mysql.php#ini.pdo-mysql.default-socket om den indstilling

Du kan derefter indstille timeoutet ved hjælp af http://php .net/manual/en/function.stream-set-timeout.php

Men sandsynligvis nemmere at indstille standard og derefter nulstille, når du er færdig...



  1. Forskellen mellem tidszonerne America/Los_Angeles og US/Pacific og PST8PDT?

  2. PL/SQL udskriv ref markør returneret af en lagret procedure

  3. 2 måder at liste alle triggere i en PostgreSQL-database

  4. Er InnoDB-sortering virkelig SÅ langsom?