Znáte to. Je pondělí ráno, káva je teplá, chystáte se publikovat ten skvělý článek, na kterém jste pracovali celý víkend. Kliknete na Publikovat a… nic. Nebo lépe: „Error establishing a database connection.“ Srdce vám skočí do hlíně, zíráte na obrazovku a přemýšlíte, jestli jste nedělali zálohu před třemi lety.
Uspokojte se. Databázové chyby jsou u WordPressu jako zima – chytne to každého, obvykle v nejhorším možnou chvíli, a většinou to není nic, co by se nedalo opravit. Pojďme se podívat, co se děje pod kapotou a jak to vyřešit, aniž byste museli volat bratra, co „umí počítače“.
Co vlastně ta databáze dělá?
Představte si WordPress jako restauraci. PHP soubory jsou šéfkuchař a číšníci – dělají show, vaří, servírují. Databáze (MySQL/MariaDB) je sklad. Tam leží všechno: příspěvky, stránky, komentáře, nastavení, uživatelé, i to, že máte v nastavení čtení nastavené „Zobrazit 10 příspěvků na stránku“.
Když se spojení mezi kuchyní a skladem přeruší, šéfkuchař netuší, co má vařit. Výsledek? Prázdný talíř – aneb bílá obrazovka.
Nejčastější příčiny (a jak je poznáte)
- Špatné přihlašovací údaje v wp-config.php – někdo změnilo heslo k databázi a zapomněl to nastavit i ve WordPressu. Klassika po migraci.
- Poškozené tabulky – server spadl při zápisu, disk je plný, MySQL proces byl zabit. Tabulky označené jako „crashed“ se musí opravit.
- Překročené limity – hosting má nastavený
max_connectionsnebomax_user_connectionsa váš web (nebo soused na sdíleném hostingu) je překročil. - Pluginy a témata – špatně napsaný dotaz, který databázi „zasekne“. Často po aktualizaci.
6 způsobů, jak to opravit (od nejjednoduššího)
1. Zkontrolujte wp-config.php
Otevřete FTP/SFTP nebo File Manager v hostingu. Podívejte se na DB_NAME, DB_USER, DB_PASSWORD, DB_HOST. Sedí to? U některých hostingů (Wedos, Websupport, Active24) není localhost, ale konkrétní adresa serveru.
2. Zapněte automatickou opravu
Do wp-config.php (před řádek /* That's all, stop editing! */) přidejte:
define('WP_ALLOW_REPAIR', true);
Pak jděte na vasedomena.cz/wp-admin/maint/repair.php. Klikněte na „Opravit databázi“ nebo „Opravit a optimalizovat“. Po dokončení tento řádek zase smažte – kdokoliv by mohl tu stránku otevřít bez přihlášení.
3. phpMyAdmin – ruční oprava tabulek
V administraci hostingu najděte phpMyAdmin. Vyberte vaši databázi, zaškrtněte všechny tabulky (nebo ty označené jako „in use“ / „crashed“), v dropdownu dole vyberte Repair table. To spustí SQL příkaz REPAIR TABLE.
4. WP-CLI – pro ty, co nemají rádi myš
Máte SSH přístup? wp db repair a hotovo. Rychlé, čisté, bez klikání.
5. Obnova ze zálohy
Tady se oddělí profík od amatéra. Máte zálohu z včera? Z inkrementální z��lohy hostingu? Z UpdraftPlus, BlogVault, Jetpack VaultPress? Obnovte databázi (nebo celý web) na čas před problémem. Nemáte zálohu? To je ta chvíle, kdy si uvědomíte, proč se platí za správu.
6. Zavolejte hosting
Pokud je server přetížený, MySQL neběží, nebo je poškozený ibdata1 (systémový soubor InnoDB), nic z výše nepomůže. Podpora hostingu to ví dřív než vy.
Prevence: co dělat, abyste sem nechtěli chodit
- Automatické zálohy denně – alespoň 14 dní zpět, uložené mimo server (S3, Google Drive, FTP jinde).
- Monitoring uptime – UptimeRobot, Better Uptime, Pingdom. Vědět o výpadku dřív než zákazník.
- Čistota v databázi – revize příspěvků, spam komentáře, transienty, orphaned meta. Plugin WP-Optimize nebo Advanced Database Cleaner jednou za měsíc.
- Aktualizace – WP core, pluginy, téma, PHP verze. Staré kódy = děry a nekompatibility.
- Staging prostředí – testujte aktualizace ne na živém webu. Většina solidních hostingů to má zdarma.
Kdy už to nedáte sami
Stalo se mi u klienta: e-shop na WooCommerce, 15 000 objednávek ročně. Databáze 2 GB. Po aktualizaci pluginu pro složité ceny se tabulka wp_postmeta rozrostla na 8 GB, indexy zmizely, dotazy trvaly 30 sekund. Web nešel. Oprava trvala 4 hodiny: vyčistit, přidat chybějící indexy, přenastavit dotazy.
Nebo ten moment, kdy si admin omylem v phpMyAdminu smazl tabulku wp_users. Bez zálohy. To už není o opravě databáze, to je o záchraně byznysu.
WordPress je skvělý nástroj. Ale jako auto – když jedete 100 tisíc km ročně, občas to chce servis, ne jen natankovat a jet. A když se rozjede motor na dálnici v noci, je fajn mít číslo někoho, kdo přijede s náradím a ví, co dělá.
Zdroje: