MySQL server has gone away на сокетах


nezabor
87

Возникает проблема в использовании на сокетах подключения к базе данных
насколько я понял ругается на то что соединение было давно открыто…

Подключение в функции передаю ссылкой через GLOBALS

может и из-за ошибки в предыдущем запросе…

лог ошибок

Warning: Invalid argument supplied for foreach() in /Users/progger/www/vizg/socet/cust_fnc.inc.php on line 75

Warning: Invalid argument supplied for foreach() in /Users/progger/www/vizg/socet/cust_fnc.inc.php on line 75

Warning: Error while sending QUERY packet. PID=29515 in /Users/progger/www/vizg/inc/DbSimple/Mysqli.php on line 166

Warning: Error while sending QUERY packet. PID=29513 in /Users/progger/www/vizg/inc/DbSimple/Mysqli.php on line 166
SQL Error: MySQL server has gone away at /Users/progger/www/vizg/socet/cust_fnc.inc.php line 84<br><pre>SQL Error: MySQL server has gone away at /Users/progger/www/vizg/socet/cust_fnc.inc.php line 84<br><pre>Array
(
    [code] => 2006
    [message] => MySQL server has gone away
    [query] => UPDATE `a_user_sesions` SET `status` = 0 WHERE `ses_id` = NULL AND `status` = 1
    [context] => /Users/progger/www/vizg/socet/cust_fnc.inc.php line 84
)
Array
(
    [code] => 2006
    [message] => MySQL server has gone away
    [query] => UPDATE `a_user_sesions` SET `status` = 0 WHERE `ses_id` = NULL AND `status` = 1
    [context] => /Users/progger/www/vizg/socet/cust_fnc.inc.php line 84
)
</pre></pre>Workerman[start.php] has been stopped

то что `ses_id = NULL` это не беда с этим справлюсь


LEOnidUKG

Скрипт в смысле долго висит в процессах и потом отваливается? Для такого надо пинговать mysql и заново подключаться в случаи чего.


nezabor

LEOnidUKG #:
Скрипт в смысле долго висит в процессах и потом отваливается? Для такого надо пинговать mysql и заново подключаться в случаи чего.

ну да походу долго висит — это как-бы сокет…

но  вот как реализовать этот пинг в сокете
обратно возвращаться и заполнять ссылку на класс DB?


LEOnidUKG

nezabor #:

ну да походу долго висит — это как-бы сокет…

но  вот как реализовать этот пинг в сокете
обратно возвращаться и заполнять ссылку на класс DB?

Я не знаю как у вас там это реализовано. Просто надо ещё раз сделать подключение, а проверяется через mysql_ping()

Если есть возможность, увеличить время ожидания на сервере mysql


nezabor

вот тут по идее начинает отваливаться

Warning: Error while sending QUERY packet. PID=29515 in /Users/progger/www/vizg/inc/DbSimple/Mysqli.php on line 166


SQL Error: MySQL server has gone away at /Users/progger/www/vizg/socet/cust_fnc.inc.php line 84

https://gist.github.com/rasxod/3590c813299dbf174d18e77b60d463ff

mysqli_db_simple_ping
mysqli_db_simple_ping

  • gist.github.com
mysqli_db_simple_ping. GitHub Gist: instantly share code, notes, and snippets.


nezabor

Может как-то на уровне класса подшаманить


nezabor

LEOnidUKG #:

Я не знаю как у вас там это реализовано. Просто надо ещё раз сделать подключение, а проверяется через mysql_ping()

это  чтоже получается перед каждым запросом чтоли писать не только проверку но и заново писать код подключения бред(((((


nezabor

а можно как-то по таймауту держать подключение?

ну только отдельным потоком
ну простенькую выборку типа количества запросов состояния БД


nezabor

Ну кстати если ошибок нет в запросах то конект не падает

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *