Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
Проблема с передачей данных на удаленный серв (Norest Bebest) 05/09/2014 - 22:02:01
      Re: Проблема с передачей данных на удаленный серв (Akina) 06/09/2014 - 23:23:15

> Original message text:
> From: Norest Bebest - 05/09/2014 - 22:02:01
> Subject:Проблема с передачей данных на удаленный серв
> -----------------
>
> Суть проблемы:
>
> На удаленных сервер перестали поступать данные 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 какой-то параметр, связанный с таймаутом соединения
> или размером передавамых даннных , что здесь можно исправить?
>


From: Akina - 06/09/2014 - 23:23:15
Subject:Проблема с передачей данных на удаленный серв
-----------------
PHP не может получить данные - но он всё равно белый и пушистый, а виноват гадкий MySQL...
Ищи ошибки или в ПХП, или в пробросе портов.


[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
43182



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |