mysql_ping () c api терпит неудачу - PullRequest
0 голосов
/ 22 сентября 2009

соединение с mysql теряется через 8 часов (т. Е. После истечения времени ожидания var_bail wait_timeout). я пытаюсь использовать mysql_ping () для повторного подключения к серверу, но пинг дает мне Mysql пропала ошибка сервера. Я использую SQL версии 5.1. таким образом, я не использую mysql_options (), чтобы включить флаг повторного подключения, поскольку mysql_real_connect () устанавливает его в 0. Я явно устанавливаю флаг повторного подключения в 1, как mysql_Conn-> reconnect = 1; после вызова mysql_real_connect (). Но MySQL не работает. Пересоединение не происходит. Добрый совет. Заранее спасибо

1 Ответ

2 голосов
/ 22 сентября 2009

Вместо того, чтобы пытаться восстановить соединение с ним после его разрыва, гораздо лучше периодически проверять его примерно за половину времени отключения в режиме ожидания (в вашем случае 4 часа), чтобы поддерживать его.

В случае сбоя проверки связи явно сбросьте соединение и переподключите.

Кроме того, вы можете добавить что-то подобное в ваш /etc/my.cnf:

[mysqld]
wait_timeout=400000

Время ожидания указывается в секундах, поэтому оно составляет около четырех с половиной дней, что достаточно для поддержания связи в течение долгих выходных, пока ваша система не используется никем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...