Poměrně běžná chyba, se kterou se setkali snad všichni provozovatelé webových stránek. Jedná se o problém ve spojení s databázovým serverem. V případě WordPressu jde o potíže s připojením k MySQL databázi, kterou používá. Podíváme se na několik možných příčin této neoblíbené chyby.
Poznámka: než uděláte jakékoliv změny v databázi, ujistěte se, že máte zálohu.
Možné příčiny chyby
Příčin problémů ve spojení s databází může být několik, nejčastěji se však jedná o nesprávné přihlašovací údaje k databázi. Může jít ale i o poškození databáze, nedostatečná práva uživatele nebo celkovou nefunkčnost databázového serveru. Projdeme si základní postup vyřešení této chyby.
Objevuje se chyba i pro /wp-admin/?
Nejprve se podívejte, zda se chyba projevuje stejně pro front-end (to, co vidí uživatelé) i back-end (administrace) webu. Pokud je chyba stejná pro obě části, můžete přejít níže. Pokud je ale chyba jiná, například „One or more database tables are unavailable…“, může jít o poškození samotné databáze a musíte učinit několik kroků k její opravě.
Opravu databáze zahájíte přidáním následující hodnoty do souboru wp-config.php:
define('WP_ALLOW_REPAIR', true);
Jakmile tak učiníte, přejděte na adresu:
http://www.VASEDOMENA.cz/wp-admin/maint/repair.php.
Oprava databáze WordPressu
K provedení opravy nemusíte být přihlášení do WordPress administrace, protože při poškození databáze by to mnohdy ani nebylo možné. Po dokončení opravy tedy nezapomeňte řádek z wp-config.php zase smazat! Na stránce oprav můžete nechat WordPress i optimalizovat databázi pro svižnější chod webu (ozvláště u větších magazínů s tisícovkami článků). Pro stisknutí tlačítka pro opravu se WordPress pokusí najít chyby v tabulkách databáze a automaticky je opravit.
Pokud tento pokus selhal a chyba se stále objevuje, čtěte dál a snad společně dojdeme k vyřešení některým z dalších popisovaných způsobů.
Kontrola souboru wp-config.php
Wp-config.php je zřejmě nejdůležitějším souborem v celé instalaci WordPressu. Právě zde nastavujete přihlašovací údaje k databázi. Pokud měníte heslo nebo uživatelské jméno pro databázi na vašem hostingu, musíte tak učinit i v souboru wp-config.php. Ujistěte se, že máte v configu uvedené správné údaje pro přihlášení, uvedené jsou na následujících řádcích:
define('DB_NAME', 'jmeno-databaze');
define('DB_USER', 'prihlasovaci-jmeno');
define('DB_PASSWORD', 'heslo-k-databazi');
define('DB_HOST', 'localhost');
Pamatujte, že DB_HOST nemusí vždy být localhost, záleží i na nastavení vašeho hostingu. Může se stát, že překlad localhostu na IP adresu nebude fungovat a připojení k databázi selže právě z tohoto důvodu. Proto někdy pomůže nahradit localhost za IP adresu vašeho databázového serveru, která je obvykle shodná s IP adresou hostingu. Nemusí tomu ale tak být (někdo používá pro databáze jiný server než pro data webu)! Proto se ujistěte, že máte DB_HOST nastavený správně. Zkontrolujte také možné překlepy ve všech údajích.
Jestliže je všechno správně a chyba setrvala, bude zřejmě problém na straně serveru.
Kontrola MySQL serveru
Občas dojde k chybě spojení s databází, když je váš web pod náporem velkého množství návštěvníků. V podstatě jde o to, že databázový server už nedokáže vyřídit všechny požadavky, tak některé prostě odmítne (chyba se zobrazí pouze některým návštěvníkům). Nejlepší možnost je v tomto případě kontaktovat přímo poskytovatele hostingu a zeptat se ho na stav databázového serveru a případně se domluvit na řešení.
Pokud si chcete otestovat funkčnost databázového serveru sami, máte několik možností.
Nejprve vyzkoušejte, zda další stránky na stejném serveru mají ten samý problém s připojením k databázi. Jestli ano, bude chyba na straně serveru. Nemáte-li jiné weby na stejném serveru, připojte se do administrace hostingu a zkuste se přihlásit do phpMyAdmina.
Jestliže se vám to nepodaří, nemusí to ještě nutně znamenat, že je celý MySQL server dole. Může jít o nedostatek práv pro daného uživatele. V tomto případě existuje šance, že se vám zobrazí chyba typu „Access denied for user…“. Pokud se tak stane, zkuste použít jiného databázového uživatele s patřičnými právy (např. u VPS si můžete sami vytvořit nového uživatele). V případě, že používáte webhosting, kde nemáte možnost použít jiného databázového uživatele, budete muset kontaktovat poskytovatele hostingu, aby záležitost prošetřil.
Další možností, jak otestovat připojení k databázi je vytvořit si jednoduchý php skript pro test:
Soubor můžete nazvat například testdb.php, vložte do něj uvedený kód a nahrajte ho na hosting. Po načtení php souboru na webu (adresa např. www.vasweb.cz/testdb.php) byste měli vidět buď hlášku „Úspěšně připojeno“ nebo naopak „Nelze se připojit“ včetně případné MySQL chyby.
V případě, že spojení proběhne bez problému, zkuste ještě jednou pečlivě překontrolovat veškeré údaje v souboru wp-config.php. V opačném případě bude problém rozsáhlejší a nezbyde než kontaktovat zákaznickou podporu hostingu.
Několik pokusů poslední záchrany:
1. Zkontrolujte záznam siteurl v tabulce wp_options v databázi
2. Zkuste se připojit s root uživatelem databáze (má všechna práva)
3. Zkuste přepsat soubory jádra WordPressu (adresáře wp-admin a wp-includes)
4. Smažte všechny údaje databáze z wp-config.php a napište je znovu (občas se stane, že čím déle na něco koukáte, tím spíše překlep přehlédnete, tak je lepší to napsat celé znovu)
Tolik k chybě připojení k databázi. Máte další řešení, problémy a poznámky? Budeme rádi za reakce v komentářích.
Mam problém s word press nemam v databazi vubec wp-config
Tento soubor (wp-config.php) se vytvoří automaticky při instalaci WordPress. Pokud ho na hostingu nemáte, tak by jste měl vidět instalátor.