0 / 0 / 0
Регистрация: 22.05.2010
Сообщений: 116

Lost connection to MySQL server during query

27.10.2011, 19:33. Показов 4233. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Написал скрипт, который обращается к удалённой странице через XML и кеширует все данные в MYSQL базу.
Скрипт состоит :
1. Подключение к базе данных.
2. Выборка из базы данных необходимого запроса.
3. Поиск на удалённом XML документе необходимой информации. (занимает от 20 до 250 секунд)
4. Запись в MYSQL базу данных этой информации.

Так вот возникает постоянная проблема
Lost connection to MySQL server during query
на 4 этапе при попытки записи, если 3.процесс занимает более 120* секунд.

Я делал между 3 и 4 этапом тестовые запросы, при этом подключение (mysql_connect) проходило нормально, а вот попытка выборки (mysql_select_db) базы данных приводит к "Lost connection to MySQL server during query", как и любые другие выборки.

Я даже в .htaccess засунул: php_value mysql.connect_timeout 250

[bold]Пожалуйста, подскажите путь решения данной проблемы![/bold]
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.10.2011, 19:33
Ответы с готовыми решениями:

QSqlDatabase + OpenMP = Error: Lost connection to MySQL server during query
Добрый день! Возникает ошибка при использовании QSqlDatabase и OpenMP.

Lost connection to MySQL server at 'reading initial communication packet', system error: 111
Отправила сайт на хостинг при помощи Filezilla и базу данных импортировала на хостинг, в браузере ввожу адрес сайта, вместо сайта:...

Counter-Strike 1.6: "Connection to server lost during level change"
Проблема такова при играх на любом серваке вылетает из сервака с надписью "Connection to server lost during level change"...

9
7 / 8 / 6
Регистрация: 11.05.2008
Сообщений: 876
27.10.2011, 21:45
Ну так сделай после пункта 2 mysql_close() и открой соединение заново перед пунктом 4. Чтобы грабеж удаленного XML проходил при закрытом соединении.
Все нуждые данные из мускула вытащи до пункта 3.
Какие проблемы-то?

Представь, что у тебя одновременно запустятся 200 скриптов.
Что, думаешь, мускул тебя вообще не пошлет от такой засады?
0
0 / 0 / 0
Регистрация: 22.05.2010
Сообщений: 116
30.10.2011, 13:23  [ТС]
webbyte в принципе у меня так и сделано, я забыл об этом упямянуть.
так что можно считать что ваш совет мне первый раз не помог вообще.
0
3 / 3 / 6
Регистрация: 20.06.2010
Сообщений: 580
30.10.2011, 16:08
http://dev.mysql.com/doc/mysql/ru/gone-away.html
0
0 / 0 / 0
Регистрация: 22.05.2010
Сообщений: 116
30.10.2011, 16:50  [ТС]
[italic]К сожалению, не помогает.[/italic]
0
7 / 8 / 6
Регистрация: 11.05.2008
Сообщений: 876
30.10.2011, 18:45
Гм. То есть ты закрываешь соединение, получаешь данные, обрабатываешь их, пытаешься запихать их в базу, но к ней не получается подсоединиться? Или получается, но при запросе (При INSERT''е, я думаю) коннект теряется?
0
7 / 8 / 6
Регистрация: 11.05.2008
Сообщений: 876
30.10.2011, 18:46
Код бы в студию. Хотя б основные повороты - блоками.
Интересубт только функции, относящиеся к mysql
Остальной код можно заменить комментариями.
0
0 / 0 / 0
Регистрация: 22.05.2010
Сообщений: 116
30.10.2011, 23:25  [ТС]
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?php
include("./config.inc");
$db = mysql_connect("$db_host", "$db_user", "$db_pasw")
                or die("Unable to connect to sql server\n");
mysql_select_db("$db_name", $db) or die("Unable to select database\n");
 
# ищу задания для керирования из XML ресурса..
 
mysql_close() ;
 
# Выдираю нужное из  XML ресурса в двухмерный массив $arr
 
mysql_connect("$db_host", "$db_user", "$db_pasw")
                or die("Unable to connect to sql server  ".mysql_error()."\n");
 
mysql_select_db("$db_name", $db) or die("Unable to select database\n"); # Происходит ошибка соединения. Если обращение к XML ресурсу длилось более 120 екунд.
 
for($count=1; $count <= count($arr[1])-1; $count++ )   {
$name_en = $arr[2][$count];
$location= $arr[3][$count];
$transfer= $arr[4][$count];
$min= $arr[5][$count];
$max= $arr[6][$count];
 
$res = mysql_query("select `date` , `iata`,`name_en` from `hotel_cach` WHERE `date`=''$date'' and `iata`=''$iata'' and `days`=''$days''  and `room_type`=''$room_type''  and `name_en`=''$name_en''   ") or die("\nSQL error ".mysql_error()." in: $res ");
list($date11, $iata11, $name_en11) = mysql_fetch_row($res);
 
if ( ! $date11 and ! $iata11 and ! $name_en11 )  {
mysql_query ("insert into `hotel_cach`
        ( `date` , `date_index`, `iata`, `name`, `name_en` , `location` , `transfer`, `min`,`max`, `days`,`room_type` )
values  ( ''$date'',''$date_index'',''$iata'',''$name'',''$name_en'',''$location'',''$transfer'',''$min'',''$max'',''$days'',''$room_type'' )") or die("\nSQL error ".mysql_error()." in: $sql\n");   }
else { echo "\nЗаписи: ".$date." - ".$iata." - ".$name_en." уже есть в базе \n";  }
}
 
# Заношу в базу данных отметку о выполнении задания.
 
?>
0
86 / 62 / 69
Регистрация: 15.03.2007
Сообщений: 6,906
31.10.2011, 11:54
По моему проблема в том что ты передаешь старое значение подключения (переменная $db) во втором вызове mysql_select_db
То есть ты делаешь следующее (упрощенно)
PHP
1
2
3
4
5
6
7
8
9
10
$db = mysql_connect("$db_host", "$db_user", "$db_pasw");
mysql_select_db("$db_name", $db);
...
mysql_close();
 
...
mysql_connect("$db_host", "$db_user", "$db_pasw");
mysql_select_db("$db_name", $db); <-- здесь используется старое значение $db
...
mysql_close();
Соответственно решение простое, второй вызов mysql_connect тоже должен инициализировать переменную $db

Во-первых, реши пользуешься ли ты везду значением которое возвращает mysql_connect или нет. И если да, то передавай его во все вызовы функций mysql_*. В том числе и в mysql_close.

Во-вторых, зачем ты передаешь значения переменных в кавычках?
PHP
1
mysql_connect("$db_host", "$db_user", "$db_pasw")
Зачем усложнять код и заставлять PHP делать лишнюю работу?
Пиши просто
PHP
1
mysql_connect($db_host, $db_user, $db_pasw)
Еще будет лучше заменить эти переменные на константы с помощью функции define
0
0 / 0 / 0
Регистрация: 22.05.2010
Сообщений: 116
07.11.2011, 18:05  [ТС]
Мне помогло устранение кавычек в
mysql_connect("$db_host", "$db_user", "$db_pasw")
все остальные варианты решения проблем я уже пробовал.
Сейчас всё работает замечательно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
07.11.2011, 18:05
Помогаю со студенческими работами здесь

Network connection may be lost
&quot;network connection may be lost &quot; =такая ошибка . не знаю вообще откуда появилась все перестало работать. помогите

OpenGL message “lost connection” (реестр)
Вылетает из любой игры с таким сообщением: В представленной ссылке советуют увеличить какой-то таймаут... и приводят другую ссылку:...

Error accessing file. Network connection may be lost
Ситуация: база на Access локальная на домашнем компе, не связана ни с какими другими базами ни на Access, ни на SQL Server Сообщение...

'Connection to host lost' при работе апплета через http
Вечер добрый. Проблема с ServerSocket при вызове appleta через http Ситуация: пишу свой чат peer-to-peer, тоесть один...

Cannot establish connection to MySQL server: #1045 - Access denied for user: 'user_db@localhost' (Using password: YES)
Приветствую всех. При установке скрипта столкнулся с траблой, а именно, при заполнении полей на install.php, пишет: Cannot establish...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

Новые блоги и статьи
Трассировка корутин Kotlin с OpenTelemetry
mobDevWorks 14.07.2025
Асинхронное программирование меняет правила игры, особенно когда речь заходит о трассировке операций. В Kotlin с его корутинами эта проблема приобретает особый оттенок, который я хотел бы детально. . .
Облачные приложения на Rust: руководство по архитектуре микросервисов
golander 13.07.2025
Когда я впервые взялся за проектирование облачной платформы для одного из наших клиентов, выбор стоял между привычными Go и Java. Но после нескольких месяцев разработки микросервисной системы,. . .
Как Node.js выполняет асинхронные операции
Reangularity 13.07.2025
Каждый раз, когда я рассказываю про Node. js, возникает один и тот же вопрос: "Как эта штука может быть быстрой, если JavaScript — однопоточный язык?" И это действительно кажется парадоксом. Ведь в. . .
Как писать чистый, тестируемый и качественный код на Python
py-thonny 12.07.2025
Помню свой первый проект на Python. Работал тогда быстро, грязно, лишь бы работало. Код был похож на запутанный клубок - переменные по одной букве, функции на 200 строк, комментарии отсутствовали как. . .
Blazor и контроллер сервопривода IoT Meadow Maple
Wired 11.07.2025
Я решил разобраться, как можно соединить современные веб-технологии с миром "железа". Интересная комбинация получилась из Blazor в качестве веб-интерфейса и микроконтроллера Meadow с его веб-сервером. . .
Генерация OpenQASM из кода Q#
EggHead 10.07.2025
Летом 2024-го я начал эксперименты с библиотекой Q# Bridge, и знаете что? Она оказалась просто находкой для тех, кто работает на стыке разных квантовых экосистем. Основная фишка этой библиотеки -. . .
Изучаем новый шаблон ИИ-чата .NET AI Chat Web App
stackOverflow 10.07.2025
В . NET появилось интересное обновление - новый шаблон ИИ-чата под названием . NET AI Chat Web App. Когда я впервые наткнулся на анонс этого шаблона, то сразу понял, что Microsoft наконец-то. . .
Результаты исследования от команды ARP (июль 2025 г.)
Programma_Boinc 10.07.2025
Результаты исследования от команды ARP (июль 2025 г. ) Африканский проект по дождям (ARP) World Community Grid снова запущен! Мы рады поделиться обновленной информацией о нашем прогрессе с осени. . .
Angular vs Svelte - что лучше?
Reangularity 09.07.2025
Сегодня рынок разделился на несколько четких категорий: тяжеловесы корпоративного уровня (Angular), гибкие универсалы (React), прогрессивные решения (Vue) и новая волна компилируемых фреймворков. . .
Code First и Database First в Entity Framework
UnmanagedCoder 09.07.2025
Entity Framework дает нам свободу выбора, предлагая как Code First, так и Database First подходы. Но эта свобода порождает вечный вопрос — какой подход выбрать? Entity Framework — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru