У меня странная проблема, которая беспокоила меня в течение нескольких дней: я использую скрипт php websocket для интранет-сайта, чтобы предупредить персонал об определенных вещах. Это было дешевое и довольно простое в реализации решение, и оно отлично работает. Тем не менее, я должен перезагрузить сервер каждое утро.
так как код php выполняется в бесконечном цикле и каждая задача выполняется последовательно, а не одновременно, я предположил, что достаточно одного постоянного соединения с БД, поэтому я просто открываю соединение прямо в начале кода с помощью переменной $ GLOBALS и использовать его снова и снова. он работает нормально до следующего утра, когда все запросы вернутся как ложные. связь еще жива. ловцы ошибок, такие как «-> connect_error» а также «-> Connect_stat ()«не вернет ошибки.
очевидно, MySQL запускает проверку самообновления каждую ночь в полночь. Я не уверен, что это вызывает проблемы, но я надеюсь, что мне не придется отключать эту функцию.
единственный способ обойти эту проблему — отправить запрос, который может вернуть только положительный ответ. если это не так, он закрывает и снова открывает соединение. это не кажется мне умным. должен быть способ определить, когда соединение становится ненадежным.
Я использую последние версии PHP и MySQL.
есть идеи?
Возможно, не произошла ошибка подключения, поскольку она успешно подключилась первой … Проверьте последнюю ошибку вместо $mysqli->error
, Вы, вероятно, получите «Mysql Server исчез». Если вы это сделаете, вы можете закрыть соединение и перезапустить новое.
Других решений пока нет …