Chyba „MySQL server has gone away“

Občas sa môže stať, že pri vykonávaní nejakej činnosti, ktorá zaberie veľa času (napríklad konvertovanie videa) stratíme spojenie s databázovým serverom a všetky pokusy o prístup k databáze sa skončia hláškou MySQL server has gone away. Ak hľadáte riešenie pre WordPress, tak čítajte ďalej.

WordPress používa na prístup k databáze globálnu inštanciu triedy wpdb. Táto trieda, ale nemá žiadnu metódu na jednoduché znovu pripojenie sa k DB serveru. To však neznamená, že takéto znovu pripojenie nie je možné. Na to nám postačí nasledujúci jednoduchý kód:

global $wpdb;
mysql_close($wpdb->dbh);
$wpdb->dbh = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD, true);
$wpdb->select( DB_NAME, $wpdb->dbh);

S daným kódom sa znovu pripojíme k databáze a môžeme sňou ďalej pracovať ;).

p.s. môže sa stať, že pri akcii čo zaberá veľa času neuvidíte žiadnu chybu, len sa bude aplikácia správať nekorektne. V tom prípade skúste zapnúť vypisovanie databázových chýb vo WP:

global $wpdb;
$wpdb->show_errors = true;

Ak potom zbadáte hore uvedenú chybu MySQL server has gone away, tak sa len znovu pripojte.


Posted

in

by

Comments

Pridaj komentár

Vaša e-mailová adresa nebude zverejnená. Vyžadované polia sú označené *