динамически изменять таймаут подключения MySQL в PHP - PullRequest
2 голосов
/ 12 января 2010

как я могу динамически изменить время ожидания подключения MySqli с помощью PHP? Я обнаружил в следующем руководстве, что вы можете установить параметр после открытия соединения, но в нем говорится, что он поддерживает только Windows начиная с PHP 5.3.1:

http://www.php.net/manual/en/mysqli.options.php

Я использую PHP5.2.4, MySQLi (улучшенная версия)

время ожидания соединения по умолчанию составляет 20 секунд в my.cnf, но в специальном php-скрипте, который у меня есть, я бы хотел установить его выше, например, за 500 секунд до истечения времени ожидания.

Ответы [ 3 ]

2 голосов
/ 13 января 2010

правильное решение для mysqli - сразу после открытия соединения, выполните следующий запрос, чтобы изменить session.wait_timeout на более длинный:

SET @@session.wait_timeout=500
2 голосов
/ 12 января 2010
$mysqli->options(MYSQLI_OPT_CONNECT_TIMEOUT, 500)

руководство

Однако установление соединения с php на mysql НЕ требует значительных ресурсов. ИМХО, лучше иметь меньший тайм-аут и установить несколько соединений. Это освободит соединения для других процессов.

1 голос
/ 12 января 2010

Мне очень жаль за путаницу, но я использую сервер Linux, а не Windows. Я неправильно понял комментарий в PHP документах ", поддерживаемых в Windows с TCP / IP начиная с PHP 5.3.1" , я думал, что это означает, что опция поддерживается только на сервере Windows. *

ОК, поэтому

$mysqli->options(MYSQLI_OPT_CONNECT_TIMEOUT, 500);

отлично подойдет для меня.

Спасибо

...