Всем привет, есть проблема суть которой заключается в следующем:
1. делаю форк процесса (pcntl_fork)
2. родитель завершает работу и убивает общие дескрипторы файлов и БД
3. потомок не может обратиться к БД с ошибкой "SQLSTATE[HY000]: General error: 2006 MySQL server has gone away"
Понимаю, что надо бы открыть соединение заново, но это сделать не получается:
1.перед форком закрываю соединение (Database::closeConnection();)
2. после форка открываю (Database::getConnection();)
3. не помогает.
также не помогает ini_set('mysqli.reconnect', 'on');
есть какие-нибудь идеи на этот счёт?
Спасибо.
Комментарии
попробуйте это
Спасибо, но проблема немного не в БД, а в том, что родитель закрывает соединение и потомок теряет дескриптор подключения к БД, вопрос больше о том как переоткрыть этот дескриптор.
А в логах закрытие подключения как-то "обосновывается"?
После того как родитель отрабатывает, любые обращения потомков к БД заканчиваются таким результатом:
SQLSTATE[HY000]: General error: 2006 MySQL server has gone away
если вы об этом
понимаю, может и глупость, но
http://www.it-rem.ru/error-2006-hy000-mysql-server-has-gone-away.html