Váš web zobrazuje jen jeden řádek: „Během připojování k databázovému serveru došlo k chybě“. WordPress nedokázal otevřít databázi, ve které žijí vaše stránky, nastavení a účty. Váš obsah je obvykle nedotčený: tento průvodce vysvětluje, jak zjistit, o kterou ze čtyř možných příčin jde, a jak ji opravit.
wp-config.php. Váš obsah je obvykle nedotčený.DB_NAME, DB_USER, DB_PASSWORD a DB_HOST ve wp-config.php s hodnotami v panelu poskytovatele hostingu.Při každém zobrazení stránky otevírá WordPress připojení ke své databázi MySQL nebo MariaDB se čtyřmi údaji zapsanými ve wp-config.php, v kořenovém adresáři webu:
define( 'DB_NAME', 'nazev_databaze' );
define( 'DB_USER', 'uzivatel' );
define( 'DB_PASSWORD', 'heslo' );
define( 'DB_HOST', 'localhost' );
„Během připojování k databázovému serveru došlo k chybě“ znamená, že toto připojení selhalo. Způsobují to čtyři příčiny: přihlašovací údaje, které už nesedí, databázový server, který je zastavený nebo nedostupný, přetížený server, nebo poškozená databáze. Následující části je procházejí od té, kterou ověříte nejsnáze, po tu nejvzácnější.
Pokud je příčinou server, založte u poskytovatele hostingu tiket s časem začátku výpadku a přesným zněním hlášení. Na webu mezitím nic neměňte.
To je nejčastější příčina po stěhování webu, po změně hesla k databázi v panelu poskytovatele hostingu nebo po obnově ze zálohy. Porovnejte čtyři hodnoty ve wp-config.php se sekcí databází u svého poskytovatele hostingu:
DB_NAME a DB_USER: mnoho poskytovatelů hostingu k nim přidává prefix s názvem účtu (ucet_wordpress). Prefix je součástí názvu.DB_PASSWORD: v případě pochybností nastavte uživateli v panelu nové heslo a zapište ho do souboru.DB_HOST: u mnoha poskytovatelů hostingu localhost, ale ne u všech. Někteří uvádějí název serveru nebo adresu, někdy s portem (:3306). Přesná hodnota je uvedena v panelu.Heslo, které obsahuje apostrof ('), přeruší řetězec PHP, který ho ve wp-config.php obklopuje. Vložte před něj zpětné lomítko (\'), nebo zvolte heslo bez apostrofu.
WordPress zobrazí obecné hlášení. MySQL naopak přesně řekne, co je špatně. Dva způsoby, jak se ho s hodnotami z wp-config.php zeptat:
mysql -h localhost -u uzivatel -p nazev_databaze
S WP-CLI příkaz wp db check načte přímo wp-config.php a s těmito údaji zkontroluje tabulky.
Nahrajte tento soubor do kořenového adresáře webu pod názvem, který se těžko uhodne, otevřete ho v prohlížeči a pak ho hned smažte: obsahuje heslo k databázi.
<?php
mysqli_report(MYSQLI_REPORT_OFF);
$spojeni = @mysqli_connect('localhost', 'uzivatel', 'heslo', 'nazev_databaze');
echo $spojeni ? 'Připojení úspěšné' : 'Chyba: ' . mysqli_connect_error();
Na prvním řádku záleží: od PHP 8.1 vyvolá neúspěšné připojení ve výchozím nastavení výjimku a stránka by zůstala bílá, místo aby zobrazila hlášení MySQL.
| MySQL odpoví | Příčina | Oprava |
|---|---|---|
Access denied for user 'uzivatel'@'localhost' (using password: YES) | Dvojice uživatel a heslo je odmítnuta, nebo se uživatel nesmí připojit z tohoto hostitele. | Nastavit v panelu nové heslo a zapsat ho do DB_PASSWORD; ověřit DB_USER. |
Access denied for user 'uzivatel'@'localhost' to database 'nazev_databaze' | Uživatel se připojí, ale k této databázi nemá oprávnění. | Přiřadit uživatele k databázi v panelu poskytovatele hostingu, se všemi oprávněními. |
Unknown database 'nazev_databaze' | Připojení funguje, ale žádná databáze tohoto názvu neexistuje. | Opravit DB_NAME včetně prefixu; ověřit, že databáze stále existuje. |
Too many connections | Server dosáhl maximálního počtu souběžných připojení. | Viz část o chybě, která přichází a odchází. |
Connection refused nebo No such file or directory (kód 2002 z PHP), Can't connect to MySQL server (z příkazové řádky) | Na této adrese neodpovídá žádný server: server je zastavený, nebo je DB_HOST chybně. | Ověřit DB_HOST v panelu; jinak upozornit poskytovatele hostingu. |
Připojení úspěšné | Údaje jsou správné. | Hledat příčinu v samotné databázi: další část. |
Když jsou údaje správné, ale některé tabulky jsou poškozené, veřejný web zobrazí stejné hlášení o chybě připojení a administrace přesnější hlášení: „Minimálně jedna databázová tabulka není dostupná. Pravděpodobně bude potřeba databázi opravit.“ WordPress k tomu poskytuje nástroj. Přidejte do wp-config.php tento řádek:
define( 'WP_ALLOW_REPAIR', true );
Pak otevřete https://www.vas-web.com/wp-admin/maint/repair.php a spusťte „Opravit databázi“. Řádek odstraňte, jakmile oprava skončí: dokud v souboru je, je tato stránka přístupná komukoli, bez přihlášení.
Před jakoukoli opravou databázi exportujte (wp db export nebo karta Export v phpMyAdminu). Pokud oprava selže, poskytovatel hostingu může databázi obnovit ze svých záloh.
Chyba, která se objevuje v určitých hodinách a pak sama zmizí, ukazuje spíš na přetížený server než na chybné nastavení. Nejběžnější příčiny:
wp-login.php nebo xmlrpc.php, viditelné v přístupových logech poskytovatele hostingu.Opravy: zablokovat zneužívající pokusy o přihlášení, nasadit cache stránek, vypnout xmlrpc.php, pokud ho žádná aplikace nepoužívá, a vyžádat si od poskytovatele hostingu logy z období, kdy se chyba objevila.
Se Serenity by Simafri vytvoříme vaše profesionální webové stránky, hostujeme je, zabezpečíme a udržujeme aktuální. Vy nám napíšete, my se postaráme o vše. Název domény a firemní e-mail v ceně.
Obvykle ne. Hlášení říká, že se WordPress nedokázal připojit k databázi, ne že databáze zmizela. Pokud phpMyAdmin stále zobrazuje tabulky webu, vaše stránky, příspěvky a nastavení jsou na místě.
Protože nový hosting používá jiné přihlašovací údaje k databázi: název databáze, uživatele, heslo a někdy i adresu serveru. Zapište hodnoty z nového panelu do DB_NAME, DB_USER, DB_PASSWORD a DB_HOST ve wp-config.php.
Přeinstalace WordPressu nezmění údaje ve wp-config.php ani stav databázového serveru, které toto hlášení způsobují. Otestujte nejdřív přihlašovací údaje, pak stav serveru a pak neporušenost tabulek.
Spíš z přetížení než z nastavení: příliš mnoho souběžných připojení, špička návštěvnosti nebo roboti. Přístupové logy a spotřeba zdrojů v panelu poskytovatele hostingu ukážou, co se v okamžiku chyby dělo.
Simafri
Promluvme si o vašem záměru
Řekněte nám v pár slovech, co potřebujete: rychle se vám ozveme.
Děkujeme! Vaše zpráva byla odeslána. Brzy se vám ozveme.
Máte raději e-mail? Napište nám na support@simafri.com.