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.
wp-config.php nurodytais duomenimis. Jūsų turinys paprastai nepažeistas.wp-config.php reikšmes DB_NAME, DB_USER, DB_PASSWORD ir DB_HOST su nurodytomis hostingo valdymo skydelyje.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:
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.
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.
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:
DB_NAME ir DB_USER: daugelis hostingo teikėjų prie jų prideda paskyros pavadinimo prefiksą (paskyra_wordpress). Prefiksas yra pavadinimo dalis.DB_PASSWORD: jei abejojate, valdymo skydelyje nustatykite vartotojui naują slaptažodį ir įrašykite jį į failą.DB_HOST: pas daugelį hostingo teikėjų tai localhost, bet ne pas visus. Kai kurie nurodo serverio pavadinimą ar adresą, kartais su prievadu (:3306). Tiksli reikšmė nurodyta valdymo skydelyje.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.
WordPress rodo bendrą pranešimą, o MySQL tiksliai pasako, kas negerai. Du būdai jo paklausti, naudojant wp-config.php reikšmes:
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.
Į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.
<?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 atsako | Priežastis | Sprendimas |
|---|---|---|
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 connections | Serveris 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 veikia | Prisijungimo duomenys teisingi. | Ieškoti priežasties pačioje duomenų bazėje: kitas skyrius. |
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ę:
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ų.
Klaida, kuri pasirodo tam tikromis valandomis ir paskui dingsta pati, rodo perkrautą serverį, o ne neteisingą nuostatą. Dažniausios priežastys:
wp-login.php ar xmlrpc.php, matomi hostingo teikėjo prieigos žurnaluose.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.
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.
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.
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.
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ą.
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.
Simafri
Pakalbėkime apie jūsų sumanymą
Pasakykite mums keliais žodžiais, ko jums reikia: greitai jums atsakome.
Ačiū! Jūsų užklausa išsiųsta. Netrukus su jumis susisieksime.
Labiau mėgstate el. paštą? Rašykite mums adresu support@simafri.com.