Raar probleem php/mysql mysql_query (select) werkt plotseling niet meer.

Status
Niet open voor verdere reacties.

stanleyvc

Nieuwe gebruiker
Lid geworden
9 feb 2013
Berichten
3
Beste...,

Al enige weken draait een mysql server zonder problemen.
Om de 5 minuten worden er gegevens in geplaatst, dit werkt nog wel.

Vanaf een andere server word er geregeld een verbinding met de mysql server gelegd en er
data uitgehaald om daar web statistieken van te maken.

Het geheel heeft een week of drie zonder problemen gewerkt en plotseling kan ik geen gegevens uit de
mysql database via php meer halen, plaats ik de query in phpmyadmin dan werkt deze wel!

Ik haal de gegevens met onderstaande code op:
PHP:
$wh = "WHERE timestamp > '$ts_start' and timestamp < '$ts_eind'";
$query = "SELECT $weather_data_query FROM weatherdata $wh";
$res = mysql_query($query);

Het script blijft (oneindig) hangen op de onderste regel.

Wanneer ik de parsetime:
PHP:
set_time_limit(5);
ini_set('max_execution_time', 30);
Veranderd heeft dit geen enkele invloed!

Wanneer ik de proces status opvraag, blijkt wel dat er een verbinding is, maar command=Sleep?
pl_20130209.PNG

De mysql server draait op IP: 192.168.2.10 (Versie 5.1.49) en de web server op ip: 192.168.2.2

PS, het werk alleen wanneer er 1 record aan de selectie voldoet!
 
Laatst bewerkt:
Zou kunnen dat je beperkingen hebt gezet in php.ini op je webserver die het onmogelijk maken om de hele query uit te voeren.
Kan bijv. gebeuren als de database 'trager' is geworden (bijv. vanwege extra webserverbezoek, meer data erin, fragmentatie).

Ik zou zeggen: Kijk in php.ini of je daar beperkingen tegenkomt die het uitvoeren van het script beperken in tijdlengte en cpu-gebruik en zet daar eens andere (=ruimere) waarden in. Niet vergeten de webserver te herstarten daarna. Dan testen of het wél werkt. Natuurlijk ook de 2 beperking uit je originele php-script halen...

Hopelijk komen anderen ondertussen nog met andere tips/ideeën.

Tijs.
 
Laatst bewerkt:
Bedankt voor het meedenken maar daar heb ik <helaas> ook niet iets kunnen vinden.

Ik heb nu een heel klein scriptje gemaakt wat alleen het aantal records van vandaag in de database zitten, zou moeten weergeven. Maar helaas blijft deze weer hangen op de "query".

PHP:
<HTML>
<?php
	$dbhost 	= "192.168.2.10:3306";
	$database 	= "weatherdata";
	$dbuser 	= "weer";
	$dbpass 	= "weer";
	
	mysql_connect($dbhost, $dbuser, $dbpass) or die ("Error: $query<BR>Fout " . mysql_error() . "<BR>");			
	mysql_select_db($database) or die ("Error: $query<BR>Fout " . mysql_error() . " <BR>");			
	
	$weather_data_query = "timestamp,temp1,humidity1,pressure,uv,forecast,storm,wd,ws,wg,wc,rc";

	$dagen_terug = 0;
	$start = strtotime(date("d F Y 00:00:00",time() - (86400 * $dagen_terug))) - 1;
	$eind  = strtotime(date("d F Y 23:59:20",time() - (86400 * $dagen_terug))) + 1;

	$wh = "timestamp > '$start' AND timestamp < '$eind'";
	$res = mysql_query("SELECT $weather_data_query FROM weatherdata WHERE $wh");
	
	echo("<BR><BR>> " . mysql_num_rows($res) . " < <BR><BR>");
	mysql_close();
?>
</HTML>

Het hangt hier weer!
PHP:
$res = mysql_query("SELECT $weather_data_query FROM weatherdata WHERE $wh");

Wanneer ik die regel verwijder, loopt het script netjes door en word beëindigt door een mysql fout wat natuurlijk begrijpelijk is!
 
Laatst bewerkt:
Nou, ik heb zelf wat gevonden, wanneer ik de jumbo-frames van de mysql server uitzet en terug ga naar een MTU van 1500
werkt het zo te zien wel???
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan