Toon posts:

[MySQL&PHP] MySQL server has gone away

Pagina: 1
Acties:

Verwijderd

Topicstarter
als ik iets upload via mijn script
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
global $_FILES;
if (isset($_POST["filename"]) && isset($_POST["rights"])){
$PhpFound = CheckForPhp($_FILES["file"]["name"], $_FILES['file']['tmp_name'], $LoggedInUser[0][0]);
if ($PhpFound == 0){
$path= "" .$LoggedInUser[0][5] . "/" . $LoggedInUser[0][0] . "/" . str_replace(" ","_",$_FILES["file"]["name"]);
move_uploaded_file($_FILES['file']['tmp_name'],$path);
if(file_exists($path)){

$query["insert"]["file"] = "INSERT INTO bestand (BestandNaam, BestandUrl, Eigenaar, Klas, Rechten, Size) VALUES ('" . $_POST[filename] . "', '" . $path . "','" . $LoggedInUser[0][0] . "','" . $LoggedInUser[0][5] . "','" . $_POST[rights] . "','" . $_FILES["file"]["size"] . "')";
$insert["file"] = mysql_query($query["insert"]["file"]) or die (mysql_error());

$query["update"]["userupload"] = "UPDATE gebruikerstats SET FilesGeupload=FilesGeupload+1 WHERE GebruikerNaam = '" . $LoggedInUser[0][0] . "'";
$update["userupload"] = mysql_query($query["update"]["userupload"]) or die (mysql_error());

$query["update"]["byteupload"] = "UPDATE gebruikerstats SET ByteGeupload=ByteGeupload+" . $_FILES["file"]["size"] . " WHERE GebruikerNaam = '" . $LoggedInUser[0][0] . "'";
$update["byteupload"] = mysql_query($query["update"]["byteupload"]) or die (mysql_error());
}
?>


krijg ik de volgende mysql fout:
MySQL:
1
MySQL server has gone away


dit gebeurt alleen als de bestanden groter zijn dan 900KB terwijl in php.ini de max_upload_size op 16M staat.

Wie kan mij helpen met dit probleem?

  • TheBorg
  • Registratie: November 2002
  • Laatst online: 23-04 16:45

TheBorg

Resistance is futile.

Waarschijnlijk staat de session timeout van MySQL te klein. De verbinding met MySQL wordt dan verbroken tijdens het wachten op de upload.

Verwijderd

Topicstarter
in mijn php.ini heb ik de volgende waarde kunnen vinden
code:
1
2
; Maximum time (in secondes) for connect timeout. -1 means no limimt
mysql.connect_timeout = -1


dit betekent toch dat er geen timeout is? of moet ik het ergens zoeken.

  • TheBorg
  • Registratie: November 2002
  • Laatst online: 23-04 16:45

TheBorg

Resistance is futile.

code:
1
2
3
wait_timeout              = 300
interactive_timeout     = 100
connect_timeout        = 10

Ik twijfel nu even welke je moet hebben. Wat nog beter zou zijn is je script aanpassen dat het niet uitmaakt dat de verbinding wordt verbroken (ofwel de verbinding pas tot stand brengen als het tmp bestand binnen is). Als je de timeout heel erg hoog maakt dan wordt SQL gevoeliger voor DDOS aanvallen en kan het aantal verbindingen heel hoog oplopen op een drukke website.

-edit-
Het is dus de eerste ("wait_timeout").
http://dev.mysql.com/doc/mysql/en/gone-away.html

[ Voor 10% gewijzigd door TheBorg op 11-04-2005 17:40 ]


Verwijderd

Topicstarter
moet ik dit dan in php.ini zetten ergens? of want ik snap het niet echt als ik mysqld.exe open dan sluit hij hem meteen dus kan ik hem niet veranderen als ik hem open.

alvast bedankt man.

  • TheBorg
  • Registratie: November 2002
  • Laatst online: 23-04 16:45

TheBorg

Resistance is futile.

Sorry, dat staat in de my.ini, my.cfg, my.cnf of hoe het ding ook heet onder Windows.

Verwijderd

Topicstarter
hmm kan dat bestand niet vinden:S gezocht op "my.*" in windows.

toch bedankt

Verwijderd

Topicstarter
ik heb denk ik het probleem opgelost maar ik weet niet hoe ik het ga verhelpen:S

ik include een te groot en te lang function file en daardoor vertraagt hij het wordt de verbinding verbroken met de mysql denk ik. samen met de tijd die hij over het uploaden van >900kb bestanden gebruik blijkt het dus te lang te zijn voor de mysql connectie.

[edit]
en het probleem is opgelost.
in een functie die wordt gebruikt om het te downloaden bestand te downloaden wordt er een header mee gestuurd. die heeft denk ik voor problemen gezorgt want nu ik de hele functie eruit gehaald heb werkt hij weer.

toch bedankt voor de moeite en de help TheBorg

[ Voor 32% gewijzigd door Verwijderd op 11-04-2005 18:12 ]


  • D-Raven
  • Registratie: November 2001
  • Laatst online: 16-10-2025
offtopic:
lol @ mysql fout :D
die heb ik nog nooit gehad zo
Pagina: 1