[PHP/MySQL] Advies nodig ivm vreemde MySQL errors

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • pjonk
  • Registratie: November 2000
  • Laatst online: 08:27
Mijn bedrijf heeft een professional website gehost bij XS4ALL waarvoor ik de PHP code onderhoud. De website maakt gebruikt van een externe MySQL server bij XS4ALL.

In de PHP code wordt elke error in een query naar de mysql server gelogd in de trant van:
PHP:
1
2
$sql = "SELECT * FROM homepage";
$result = mysql_query($sql) or log_mysql_error('script.php', $sql);


In de logfile krijg ik regelmatig de volgende error:
Lost connection to MySQL server during query

De queries waarbij ik deze error krijg zijn Random (vaak helemaal geen zware queries). Nu heb ik al een aantal keer geprobeerd de XS4ALL helpdesk te benaderen, maar zonder resultaat.

Mijn vraag
Hebben jullie ervaring met deze errors en eventuele oplossingen? Moet ik wellicht mysql_pconnect gebruiken ipv mysql_connect. Misschien hebben jullie nog andere tips? Bvd.

It’s nice to be important but it’s more important to be nice


Acties:
  • 0 Henk 'm!

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 07:32
Je maakt wel eerst verbinding die je niet verbreekt neem ik aan? Maak je gebruik van 1 of meerdere connecties? Op deze manier is het een beetje gokken namelijk. Je kunt eventueel eens proberen om de 2de parameter van mysql_query, de verbindingsvariable, toe te voegen zodat je zeker weet dat je niet met de verkeerde connectie werkt.

Acties:
  • 0 Henk 'm!

  • Basszje
  • Registratie: Augustus 2000
  • Laatst online: 18-09 13:17

Basszje

Reisvaap!]

Krijg je ranzig veel data terug oid ofniet :?

Ik ken nl wel de mysql error : Mysql had gone away

En dat is als je een page probeert te inserten ( selecten weet ik niet ) die groter is dan de max pagesize :)

Beware of listening to the imposter; you are undone if you once forget that the fruits of the earth belong to us all, and the earth itself to nobody.


Acties:
  • 0 Henk 'm!

  • me1299
  • Registratie: Maart 2000
  • Laatst online: 21:55

me1299

$ondertitel

Misschien vind je hier je antwoord: http://www.mysql.com/doc/en/Gone_away.html

Het maakt eigenlijk niet uit wat je bewuste geest doet, omdat je onderbewuste automatisch precies dat doet wat het moet doen


Acties:
  • 0 Henk 'm!

  • pjonk
  • Registratie: November 2000
  • Laatst online: 08:27
djluc schreef op 30 September 2003 @ 16:40:
Je maakt wel eerst verbinding die je niet verbreekt neem ik aan? Maak je gebruik van 1 of meerdere connecties? Op deze manier is het een beetje gokken namelijk. Je kunt eventueel eens proberen om de 2de parameter van mysql_query, de verbindingsvariable, toe te voegen zodat je zeker weet dat je niet met de verkeerde connectie werkt.
Ik maak gebruik van 1 connectie. Ik zag ook dat in mysql_connect functie de new_link parameter beschikbaar is vanaf PHP 4.2.0 (draai 4.2.3). Ik ga hier ook nog mee experimenteren.
Bedankt voor alle reacties.

It’s nice to be important but it’s more important to be nice


Acties:
  • 0 Henk 'm!

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 07:32
Heb je dit probleem ook als je gewoon in de regels boven je query de connect en select_db zet?
Je zou eens naar de instellingen in my.ini kunnen kijken, misschien is er een of andere timeout instelling?

Acties:
  • 0 Henk 'm!

  • pjonk
  • Registratie: November 2000
  • Laatst online: 08:27
Ik kijk mijn topic even omhoog (ook omdat dit relevant voor de search kan zijn).
Ik heb alle SQL queries nagekeken en ervoor gezorgd dat alleen de velden worden geselecteerd die daadwerkelijk gebruikt worden (dus geen SELECT * meer).
Helaas heeft dit niet het gewenste effect gehad, aangezien de error nog steeds voorkomt.

Mijn idee is dat dit toch komt door de shared webshosting en de MySQL server op bepaalde tijdstippen te overbelast raakt.
MySQL instellingen kan ik volgens mij niet veranderen dus ik ga toch maar proberen de XS4ALL helpdesk opnieuw te benaderen tenzij iemand hier nog een geniale ingeving heeft 8)

It’s nice to be important but it’s more important to be nice


Acties:
  • 0 Henk 'm!

  • marty
  • Registratie: Augustus 2002
  • Laatst online: 27-03-2023
je zou kunnen proberen of het uitmaakt als je specifiek de link identifier erbij opgeeft.

PHP:
1
2
3
$link = mysql_connect(etc);
$query = "SELECT whatever";
$result = mysql_query($query, $link);

Acties:
  • 0 Henk 'm!

  • pjonk
  • Registratie: November 2000
  • Laatst online: 08:27
Sorry dat was ik vergeten te vermelden, dat heb ik reeds gedaan. Er blijven weinig opties meer over vrees ik.
Behalve dan voor elke query opnieuw connecten, maar dat vind ik niet een echt gangbare oplossing.

It’s nice to be important but it’s more important to be nice


Acties:
  • 0 Henk 'm!

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 07:32
Je kunt een functie query() schrijven die de controle uitvoert en zonodig reconnect. Het is natuurlijk wel een plakbandoplossing. Ik zou verder gewoon bij je provider gaan informeren want dit is wel heel erg vreemd.

Acties:
  • 0 Henk 'm!

  • marty
  • Registratie: Augustus 2002
  • Laatst online: 27-03-2023
heb je ook al geprobeerd (puur vanuit debug overwegingen) om mysql_db_query() ipv mysql_query() te gebruiken?

Acties:
  • 0 Henk 'm!

Verwijderd

Mijn idee is dat dit toch komt door de shared webshosting en de MySQL server op bepaalde tijdstippen te overbelast raakt.
Kan heel goed hoor; best een aantal providers heeft daar last van. Eigenlijk leveren die baggerservice kwa CPU performance en databases. Ik snap dat sowieso niet; wat kost hardware nou tegenwoordig.
Pagina: 1