Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Проблема с передачей данных на удаленный сервер
|
|||
|---|---|---|---|
|
#18+
Суть проблемы: На удаленных сервер перестали поступать данные c mysql после увеличения объема этих самых данных Описание: С локального сервера установлен ssh туннель на 3306 порт на удаленный сервер. Коннект к mysql удаленного сервера идет php скриптом $dbh = mysql_connect("127.0.0.1:3306", $user, $pswd) (3306 пробрасывается на удаленный сервер) Запрос такого типа: $QS="select * from `http` where work=1 union select * from `http` where work=0 and wasgood>0 "; $result = mysql_query($QS); Скрипт сначала получает количество результатов в ответе (например 10.000), потом делит их на 10, т.е. получает 1000 и передает их в потоки $threads->newThread('./ping.php', array('thread_id' => $j,'count' => $ct)) где т.е. каждый поток получает цифру 1000 и 10 потоков запрашивают $j=0; for ($i=0;$i<$thread_nums;$i++) { sleep(1); $threads->newThread('./ping.php', array('thread_id' => $j,'count' => $ct)); print "New thread: $j\n"; $j=$j+$ct; } Если сказать проще, то 10 потоков делят количество данных из базы на 10 и каждый обрабатывает свой участок выборки (скажем по 1000 результатов) $QS="select * from `http` where work=1 union select * from `http` where work=0 and wasgood>0 ORDER by id LIMIT $thread_id,$cnt "; В результате все работало когда строк было до 10000 , каждый поток брал до 1000 результатов, обрабатывал и возвращал результат, все было нормально. Но когда результат вырос за 10.000, потоки начали вылетать с ошибкой, как я понял - слишком большой объем данных. Для теста запускал этот же скрипт локально на том сервере, где стоит mysql - все работает. Запрос этих же данных удаленно - ошибка (ругается на получение нулевых данных): PHP Notice: Undefined offset: 0 in /var/ib/ctest/ping/threads.php on line 45 PHP Warning: stream_get_contents() expects parameter 1 to be resource, null given in /var/ib/ctest/ping/threads.php on line 45 PHP Warning: feof() expects parameter 1 to be resource, boolean given in /var/ib/ctest/ping/threads.php on line 46 PHP Warning: Division by zero in /var/ib/ctest/ping/pinghttp.php on line 69 PHP Warning: Division by zero in /var/ib/ctest/ping/pinghttp.php on line 71 Возможно это где-то в настройках mysql какой-то параметр, связанный с таймаутом соединения или размером передавамых даннных , что здесь можно исправить? Модератор: Тема перенесена из форума "MySQL". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2014, 22:01 |
|
||
|
Проблема с передачей данных на удаленный сервер
|
|||
|---|---|---|---|
|
#18+
Norest Bebest, можно попробовать покрутить max_allowed_packet в настройках сервера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2014, 23:08 |
|
||
|
Проблема с передачей данных на удаленный сервер
|
|||
|---|---|---|---|
|
#18+
Norest BebestЗапрос этих же данных удаленно - ошибка (ругается на получение нулевых данных): PHP Notice: Undefined offset: 0 in /var/ib/ctest/ping/threads.php on line 45 PHP Warning: stream_get_contents() expects parameter 1 to be resource, null given in /var/ib/ctest/ping/threads.php on line 45Вообще, следует перед использованием проверять результат выполнения запроса. Или, сразу после выполнения запроса убедиться, что он отработал без ошибок и вернул какие-то данные. В общем случае, даже если нет никаких явных ошибок выполнения запроса, запрос может вернуть в результате ноль строк (нет данных, удовлетворяющих условию). Тогда попытка использования результатов запроса в последующих вычислениях приведет к ошибке. Ну а при ошибках выполнения запроса гарантированы ошибки в дальнейшем использовании результатов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2014, 23:27 |
|
||
|
|

start [/forum/topic.php?fid=23&fpage=79&tid=1462466]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
32ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
34ms |
get tp. blocked users: |
2ms |
| others: | 231ms |
| total: | 341ms |

| 0 / 0 |
