Nepavyko prisijungti prie duomenų bazės: ką reiškia ši WordPress klaida

Jūsų svetainėje rodoma tik viena eilutė: „Nepavyko prisijungti prie duomenų bazės“ (angliškai veikiančioje svetainėje „Error establishing a database connection“). WordPress nepavyko atidaryti duomenų bazės, kurioje saugomi jūsų puslapiai, nuostatos ir paskyros. Jūsų turinys paprastai nepažeistas: šis gidas parodo, kaip nustatyti, kuri iš keturių galimų priežasčių lėmė klaidą, ir kaip ją ištaisyti.

Paskelbta 2026 m. spalio 5 d. Autorius: Skaitymo trukmė: 8 min.

Visi gidai

Svarbiausia

  1. Pranešimas reiškia, kad WordPress nepavyko prisijungti prie duomenų bazės serverio su wp-config.php nurodytais duomenimis. Jūsų turinys paprastai nepažeistas.
  2. Pirmiausia patikrinkite, ar duomenų bazės serveris veikia: hostingo teikėjo būsenos puslapis, kitos tos pačios paskyros svetainės, phpMyAdmin.
  3. Palyginkite keturias wp-config.php reikšmes DB_NAME, DB_USER, DB_PASSWORD ir DB_HOST su nurodytomis hostingo valdymo skydelyje.
  4. Išbandykite šiuos prisijungimo duomenis ne per WordPress: MySQL klaidos pranešimas nurodo tikslią priežastį.
  5. Jei administravimo skydelyje minimos nepasiekiamos lentelės, paleiskite WordPress taisymo įrankį, tada vėl jį išjunkite.
  6. Jei klaida tai atsiranda, tai dingsta, žiūrėkite į apkrovą: per daug vienu metu vykstančių prisijungimų arba svetainę užplūdę robotai.

Ką sako pranešimas

Kiekvienam pateikiamam puslapiui WordPress atveria ryšį su savo MySQL ar MariaDB duomenų baze, naudodamas keturias reikšmes, įrašytas svetainės šakniniame aplanke esančiame faile wp-config.php:

wp-config.php
define( 'DB_NAME', 'duomenu_bazes_pavadinimas' );
define( 'DB_USER', 'vartotojas' );
define( 'DB_PASSWORD', 'slaptazodis' );
define( 'DB_HOST', 'localhost' );

„Nepavyko prisijungti prie duomenų bazės“ reiškia, kad šio ryšio užmegzti nepavyko. Tai lemia keturios priežastys: nebetinkami prisijungimo duomenys, sustojęs ar nepasiekiamas duomenų bazės serveris, perkrautas serveris arba pažeista duomenų bazė. Toliau jos aptariamos nuo lengviausiai patikrinamos iki rečiausios.

1. Ar duomenų bazės serveris atsako?

Jei kaltas serveris, pateikite hostingo teikėjui pagalbos užklausą, nurodydami, kada gedimas prasidėjo, ir tikslų pranešimą. Tuo metu svetainėje nieko keisti nereikia.

2. Ar wp-config.php prisijungimo duomenys teisingi?

Tai dažniausia priežastis po svetainės perkėlimo, duomenų bazės slaptažodžio pakeitimo hostingo valdymo skydelyje ar atsarginės kopijos atkūrimo. Palyginkite keturias wp-config.php reikšmes su hostingo valdymo skydelio duomenų bazių skiltimi:

Slaptažodis, kuriame yra apostrofas ('), nutraukia jį supančią PHP eilutę faile wp-config.php. Prieš apostrofą įrašykite atvirkštinį pasvirąjį brūkšnį (\') arba pasirinkite slaptažodį be apostrofo.

Išbandykite prisijungimo duomenis ne per WordPress

WordPress rodo bendrą pranešimą, o MySQL tiksliai pasako, kas negerai. Du būdai jo paklausti, naudojant wp-config.php reikšmes:

Komandinėje eilutėje, jei turite SSH prieigą

Terminalas (slaptažodžio bus paprašyta po to)
mysql -h localhost -u vartotojas -p duomenu_bazes_pavadinimas

Su WP-CLI komanda wp db check tiesiogiai skaito wp-config.php ir su šiais duomenimis patikrina lenteles.

Su laikinu PHP failu

Įkelkite šį failą į svetainės šakninį aplanką sunkiai atspėjamu pavadinimu, atidarykite jį naršyklėje, tada nedelsdami jį ištrinkite: jame yra duomenų bazės slaptažodis.

db-testas-a7k2.php
<?php
mysqli_report(MYSQLI_REPORT_OFF);
$rysys = @mysqli_connect('localhost', 'vartotojas', 'slaptazodis', 'duomenu_bazes_pavadinimas');
echo $rysys ? 'Ryšys veikia' : 'Nepavyko: ' . mysqli_connect_error();

Pirmoji eilutė svarbi: nuo PHP 8.1 nepavykęs prisijungimas pagal numatytuosius nustatymus meta išimtį, ir puslapis liktų baltas, užuot parodęs MySQL pranešimą.

MySQL atsakoPriežastisSprendimas
Access denied for user 'vartotojas'@'localhost' (using password: YES)Vartotojo ir slaptažodžio pora atmesta arba vartotojui neleidžiama jungtis iš šio kompiuterio.Iš naujo nustatyti slaptažodį valdymo skydelyje ir įrašyti jį į DB_PASSWORD; patikrinti DB_USER.
Access denied for user 'vartotojas'@'localhost' to database 'duomenu_bazes_pavadinimas'Vartotojas gali prisijungti, bet neturi teisių į šią duomenų bazę.Hostingo valdymo skydelyje priskirti vartotoją duomenų bazei su visomis teisėmis.
Unknown database 'duomenu_bazes_pavadinimas'Prisijungimas veikia, bet tokiu pavadinimu duomenų bazės nėra.Ištaisyti DB_NAME, įskaitant prefiksą; patikrinti, ar duomenų bazė vis dar egzistuoja.
Too many connectionsServeris pasiekė didžiausią vienu metu leidžiamų prisijungimų skaičių.Žr. skyrių apie protarpines klaidas.
Connection refused arba No such file or directory (kodas 2002 iš PHP), Can't connect to MySQL server (komandinėje eilutėje)Šiuo adresu neatsako joks serveris: serveris sustojęs arba DB_HOST neteisingas.Patikrinti DB_HOST valdymo skydelyje; kitu atveju kreiptis į hostingo teikėją.
Ryšys veikiaPrisijungimo duomenys teisingi.Ieškoti priežasties pačioje duomenų bazėje: kitas skyrius.

3. Pažeista duomenų bazė: taisymo įrankis

Kai prisijungimo duomenys teisingi, bet lentelės pažeistos, viešoje svetainėje rodoma ta pati prisijungimo klaida, o administravimo skydelyje tikslesnis pranešimas, kurį WordPress rodo angliškai: „One or more database tables are unavailable. The database may need to be repaired.“ WordPress tam turi įrankį. Į wp-config.php įrašykite šią eilutę:

wp-config.php
define( 'WP_ALLOW_REPAIR', true );

Tada atidarykite https://www.jusu-svetaine.com/wp-admin/maint/repair.php ir paleiskite „Taisyti duomenų bazę“. Pašalinkite eilutę, kai tik taisymas baigtas: kol ji yra, šį puslapį gali pasiekti bet kas, net neprisijungęs.

Prieš bet kokį taisymą eksportuokite duomenų bazę (wp db export arba phpMyAdmin eksporto skirtukas). Jei taisymas nepavyksta, hostingo teikėjas gali atkurti duomenų bazę iš savo atsarginių kopijų.

4. Klaida, kuri tai atsiranda, tai dingsta: apkrova

Klaida, kuri pasirodo tam tikromis valandomis ir paskui dingsta pati, rodo perkrautą serverį, o ne neteisingą nuostatą. Dažniausios priežastys:

Sprendimai: blokuoti piktnaudžiaujančius prisijungimo bandymus, įdiegti puslapių podėlį (cache), išjungti xmlrpc.php, jei jo nenaudoja jokia programa, ir paprašyti hostingo teikėjo žurnalų už laikotarpį, kai buvo klaida.

Svetainė, kurios techninę pusę tvarkome mes

Su Serenity by Simafri mes sukuriame jūsų profesionalią svetainę, ją talpiname, apsaugome ir nuolat atnaujiname. Jūs mums parašote, mes pasirūpiname viskuo. Domeno vardas ir profesionalus el. paštas įskaičiuoti.

Susipažinti su Serenity by Simafri

Dažni klausimai

Ar duomenų bazės prisijungimo klaida ištrynė mano svetainę?

Paprastai ne. Pranešimas sako, kad WordPress nepavyko prisijungti prie duomenų bazės, o ne kad duomenų bazė dingo. Jei phpMyAdmin vis dar rodo svetainės lenteles, jūsų puslapiai, įrašai ir nuostatos yra vietoje.

Kodėl klaida atsirado perkėlus svetainę?

Nes naujame hostinge naudojami kiti duomenų bazės prisijungimo duomenys: duomenų bazės pavadinimas, vartotojas, slaptažodis, kartais ir serverio adresas. Įrašykite naujo valdymo skydelio reikšmes į DB_NAME, DB_USER, DB_PASSWORD ir DB_HOST faile wp-config.php.

Ar reikia iš naujo įdiegti WordPress, kad ši klaida dingtų?

Iš naujo įdiegus WordPress nepasikeičia nei wp-config.php prisijungimo duomenys, nei duomenų bazės serverio būklė, o būtent jie lemia šį pranešimą. Pirmiausia išbandykite prisijungimo duomenis, tada serverį, tada lentelių vientisumą.

Klaida pasirodo tik kai kuriomis dienomis. Iš kur ji kyla?

Greičiau iš perkrovos nei iš nuostatos: per daug vienu metu vykstančių prisijungimų, srauto šuolis ar robotai. Prieigos žurnalai ir išteklių naudojimo duomenys hostingo valdymo skydelyje parodo, kas vyko klaidos metu.

Susisiekite su mumis