Portál AbcLinuxu, 14. května 2025 00:12

Dotaz: PHP + MySQL server has gone

18.10.2009 10:48 Open Mage | skóre: 24 | Lom
PHP + MySQL server has gone
Přečteno: 360×
Odpovědět | Admin
Ahoj,
optimalizoval jsem konecne vykon importu dat z XML souboru (32MB) do MySQL pomoci mysqli + persistentni spojeni + prepared statements. Nicmene u urcityho zaznamu mi to vzdycky spadne s tim, ze chyba 2006 - MySQL server has gone. Vygooglil jsem co a jak, melo by byt resenim zvysit hodnotu max_allowed_packet v my.ini.
Problem je, ze ke konfiguraci my.ini pristup nemam a sance na jeho zmeneni proste neni. Otazkou tedy je jak resit tuhle situaci alternativne? Zkousim treba po 1000 zaznamech (problem nastava nekde u 2997) reconnect/kill thread/change_user atd. a znovu nastavit prepared statement, ale beztak to vzdycky padne. Napada nekoho jak tohle resit pokud jsem odkazan jen na PHP, pripadne drobny upravy pres .htaccess ? Diky diky diky
Stanislav Puffler, DiS. specialista na internet marketing a ecommerce www.openmage.cz tel. 773 565 747
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Bedňa avatar 22.10.2009 07:47 Bedňa | skóre: 34 | blog: Žumpa | Horňany
Rozbalit Rozbalit vše Re: PHP + MySQL server has gone
Odpovědět | | Sbalit | Link | Blokovat | Admin
phpmyadmin tam máš?
KERNEL ULTRAS video channel >>>
23.10.2009 21:24 Open Mage | skóre: 24 | Lom
Rozbalit Rozbalit vše Re: PHP + MySQL server has gone
Jj ten tam je, da se tam neco extra vyzjistit?
Stanislav Puffler, DiS. specialista na internet marketing a ecommerce www.openmage.cz tel. 773 565 747
22.10.2009 13:07 Messa | skóre: 39 | blog: Messa
Rozbalit Rozbalit vše Re: PHP + MySQL server has gone
Odpovědět | | Sbalit | Link | Blokovat | Admin
Co na to říká admin (ten kdo k my.ini a k logům přístup má)?

Jaká je teď hodnota max_allowed_packet?
23.10.2009 21:28 Open Mage | skóre: 24 | Lom
Rozbalit Rozbalit vše Re: PHP + MySQL server has gone
Poslal jsem e-mail s popisem, ale zatim bez odpovedi. Testuju a vyvijim to na freehostingu zatim, takze nejakou promptni odpoved neocekavam - ani na ni nespecham, kdyby jo dal bych to rovnou na placenej hosting.
Stanislav Puffler, DiS. specialista na internet marketing a ecommerce www.openmage.cz tel. 773 565 747
30.10.2009 18:31 Open Mage | skóre: 24 | Lom
Rozbalit Rozbalit vše Re: PHP + MySQL server has gone
Tak je to zdá se nějakej timeout - pač pokaždý to sežere různej počet záznamů a vždy skončí po 90 vteřinách. Teď jen jak správně u mysqli + perzistentní spojení + prepared statements udělat korektní ukončení spojení a znovunavázání v rámci jednoho skriptu. Aktuálně když vynuluju preparedStatement a connection a znovu se pripojim treba u kazdyho styho zaznamu, tak to stejne po tech 90 sekundach padne a nazdar.
Stanislav Puffler, DiS. specialista na internet marketing a ecommerce www.openmage.cz tel. 773 565 747
1.11.2009 14:04 impact | skóre: 11 | blog: _
Rozbalit Rozbalit vše Re: PHP + MySQL server has gone

Pomocou mysqli_options si mozes nastavit niekolko parametrov pre spojenie cez mysqli. Medzi nimi je aj MYSQLI_OPT_CONNECT_TIMEOUT.

Dalsim problemom moze byt timeout PHP skriptu. Pises, ze aj po uzatvoreni spojenia a vytvoreni noveho spojenia to padne. To znamena, ze problem bude asi v dlzke spracovania PHP skriptu. Mohol by si skusit volat PHP skript odznova pre kazdu skupinu poziadavok.

V PHP skripte si musis spravit nacitanie limitov pre data, ktore sa maju spracovat. Po spracovani vypises do HTML napriklad redirect skript na ten isty skript, avsak s posunutymi limitmi.

Priklad volani:

1.) db_save.php -> $from = 0; $to = 100; Po ukonceni vypises pomocou echo HTML:

2.) HTML -> redirect na db_save?from=100&to=200;  (redirect timeout napr. 5s)

3.) Znova sa zavola PHP skript, tentokrat s novymi udajmi a pokracuje sa znova. Nakonci sa vratis na bod 1 a tak to mozes opakovat az kym neprides na koniec dat.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.