Mysql
 sql >> Baza danych >  >> RDS >> Mysql

PDO PHP ignoruje opcję ATTR_TIMEOUT dla MySQL, gdy serwer jest nieosiągalny

Po prostu wstaw

ini_set("default_socket_timeout", 2);

przed ciągiem połączenia PDO().

(Testowane w systemie Windows, powinno być również w porządku w systemie Linux.)

Dlaczego?

Ściganie tego przez instrukcję:

Sterownik mysqlnd używa gniazd dla bazowego połączenia, a aby ustawić limity czasu, musisz użyć funkcji limitu czasu gniazda (strumienia). (Ref:http://php.net/manual/en/mysqlnd.notes. php )

Jeśli chcesz mieć większą kontrolę, możesz być w stanie dokładniej kontrolować rzeczywiste gniazdo:nie testowałem tego, ponieważ jest to tylko uniks. Aby ustawić gniazdo, którego używa mysqlnd, możesz określić gniazdo za pomocą ustawień ini (Ref:http://php.net/manual/en/ref.pdo-mysql.connection.php )

Zobacz http://php. net/manual/en/ref.pdo-mysql.php#ini.pdo-mysql.default-socket o tym ustawieniu

Możesz wtedy ustawić limit czasu za pomocą http://php .net/manual/en/function.stream-set-timeout.php

Ale prawdopodobnie łatwiej ustawić domyślne, a następnie zresetować, gdy skończysz...



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ciąg do jody LocalDate w formacie dd-MMM-rr

  2. MYSQL nadrzędny podrzędny Ta sama tabela; PHP Nest Children w rodzicach jako wielowymiarowa tablica

  3. Jak wyczyścić lub zmienić rozmiar pliku ibtmp1 w MySQL?

  4. Jak zabezpieczyć MySQL:część druga

  5. Wprowadź moje php w mysql bez powtarzania?