Sivustollanne näkyy vain yksi rivi: ”Tietokantayhteys epäonnistui” (englanninkielisessä WordPressissä ”Error establishing a database connection”). WordPress ei saanut auki tietokantaa, jossa sivunne, asetuksenne ja tilinne ovat. Sisältönne on yleensä tallessa: tämä opas näyttää, miten selvitätte, mikä neljästä mahdollisesta syystä on kyseessä, ja miten sen korjaatte.
wp-config.php-tiedoston tiedoilla. Sisältönne on yleensä tallessa.wp-config.php-tiedoston neljää arvoa DB_NAME, DB_USER, DB_PASSWORD ja DB_HOST webhotellin hallintapaneelin arvoihin.Jokaista näyttämäänsä sivua varten WordPress avaa yhteyden MySQL- tai MariaDB-tietokantaansa neljällä tiedolla, jotka on kirjoitettu sivuston juurihakemiston wp-config.php-tiedostoon:
define( 'DB_NAME', 'tietokannan_nimi' );
define( 'DB_USER', 'kayttajanimi' );
define( 'DB_PASSWORD', 'salasana' );
define( 'DB_HOST', 'localhost' );
”Tietokantayhteys epäonnistui” tarkoittaa, että tämä yhteys ei onnistunut. Sen aiheuttaa jokin neljästä syystä: tunnukset, jotka eivät enää täsmää, tietokantapalvelin, joka on pysähtynyt tai jota ei tavoiteta, ylikuormittunut palvelin tai vaurioitunut tietokanta. Seuraavat osiot käyvät ne läpi helpoimmin tarkistettavasta harvinaisimpaan.
Jos vika on palvelimessa, avatkaa tukipyyntö webhotelliin ja kertokaa, milloin vika alkoi, sekä tarkka virheilmoitus. Sivustoon ei sillä välin tarvitse tehdä muutoksia.
Tämä on yleisin syy sivuston siirron, tietokannan salasanan vaihdon tai varmuuskopion palautuksen jälkeen. Verratkaa wp-config.php-tiedoston neljää arvoa webhotellin hallintapaneelin tietokantaosioon:
DB_NAME ja DB_USER: monet webhotellit lisäävät niihin tilin nimen etuliitteeksi (tili_wordpress). Etuliite on osa nimeä.DB_PASSWORD: jos olette epävarmoja, asettakaa käyttäjälle hallintapaneelissa uusi salasana ja kopioikaa se tiedostoon.DB_HOST: monessa webhotellissa localhost, mutta ei kaikissa. Osa antaa palvelimen nimen tai osoitteen, jota joskus seuraa portti (:3306). Tarkka arvo löytyy hallintapaneelista.Heittomerkin (') sisältävä salasana katkaisee sitä ympäröivän PHP-merkkijonon wp-config.php-tiedostossa. Lisätkää sen eteen kenoviiva (\') tai valitkaa salasana, jossa heittomerkkiä ei ole.
WordPress näyttää yleisen ilmoituksen. MySQL sen sijaan kertoo tarkasti, mikä on vialla. Kaksi tapaa kysyä sitä wp-config.php-tiedoston arvoilla:
mysql -h localhost -u kayttajanimi -p tietokannan_nimi
WP-CLI:n komento wp db check lukee wp-config.php-tiedoston suoraan ja tarkistaa taulut näillä tunnuksilla.
Tallentakaa tämä tiedosto sivuston juurihakemistoon vaikeasti arvattavalla nimellä, avatkaa se selaimessa ja poistakaa se heti: se sisältää tietokannan salasanan.
<?php
mysqli_report(MYSQLI_REPORT_OFF);
$yhteys = @mysqli_connect('localhost', 'kayttajanimi', 'salasana', 'tietokannan_nimi');
echo $yhteys ? 'Yhteys onnistui' : 'Virhe: ' . mysqli_connect_error();
Ensimmäinen rivi on tärkeä: PHP 8.1:stä lähtien epäonnistunut yhteys aiheuttaa oletuksena poikkeuksen, ja sivu jäisi tyhjäksi MySQL:n viestin sijaan.
| MySQL vastaa | Syy | Korjaus |
|---|---|---|
Access denied for user 'kayttajanimi'@'localhost' (using password: YES) | Käyttäjänimen ja salasanan yhdistelmä hylätään, tai käyttäjällä ei ole oikeutta yhdistää tästä osoitteesta. | Asettakaa salasana uudelleen hallintapaneelissa ja kopioikaa se kohtaan DB_PASSWORD; tarkistakaa DB_USER. |
Access denied for user 'kayttajanimi'@'localhost' to database 'tietokannan_nimi' | Käyttäjä saa yhteyden, mutta sillä ei ole oikeuksia tähän tietokantaan. | Liittäkää käyttäjä tietokantaan webhotellin hallintapaneelissa kaikilla oikeuksilla. |
Unknown database 'tietokannan_nimi' | Yhteys toimii, mutta tämännimistä tietokantaa ei ole. | Korjatkaa DB_NAME etuliitteineen; tarkistakaa, että tietokanta on yhä olemassa. |
Too many connections | Palvelin on saavuttanut samanaikaisten yhteyksien enimmäismäärän. | Katsokaa ajoittaisia virheitä käsittelevä osio. |
Connection refused tai No such file or directory (koodi 2002 PHP:ssä), Can't connect to MySQL server (komentorivillä) | Osoitteessa ei vastaa mikään palvelin: palvelin on pysähtynyt tai DB_HOST on väärin. | Tarkistakaa DB_HOST hallintapaneelista; muussa tapauksessa ottakaa yhteyttä webhotelliin. |
Yhteys onnistui | Tunnukset ovat oikein. | Tutkikaa itse tietokantaa: seuraava osio. |
Kun tunnukset ovat oikein mutta tauluja on vaurioitunut, julkinen sivusto näyttää saman yhteysvirheen ja hallintapaneeli tarkemman ilmoituksen: ”Yksi tai useampi tietokantataulu ei ole saatavilla. Tietokanta voi vaatia korjausta.” WordPressissä on tähän työkalu. Lisätkää tämä rivi wp-config.php-tiedostoon:
define( 'WP_ALLOW_REPAIR', true );
Avatkaa sitten https://www.sivustonne.com/wp-admin/maint/repair.php ja valitkaa ”Korjaa tietokanta”. Poistakaa rivi heti, kun korjaus on valmis: niin kauan kuin se on paikallaan, kuka tahansa pääsee sivulle kirjautumatta.
Ennen korjausta viekää tietokanta talteen (wp db export tai phpMyAdminin vientitoiminto). Jos korjaus epäonnistuu, webhotelli voi palauttaa tietokannan varmuuskopioistaan.
Virhe, joka ilmestyy tiettyinä aikoina ja katoaa itsestään, viittaa ylikuormittuneeseen palvelimeen eikä väärään asetukseen. Yleisimmät syyt:
wp-login.php tai xmlrpc.php, jotka näkyvät webhotellin käyttölokeissa.Korjaukset: estäkää väärinkäyttävät kirjautumisyritykset, ottakaa käyttöön sivujen välimuisti, poistakaa xmlrpc.php käytöstä, jos mikään sovellus ei käytä sitä, ja pyytäkää webhotellilta lokit virheen ajankohdalta.
Serenity by Simafri -palvelussa teemme ammattimaiset verkkosivunne, isännöimme niitä, suojaamme ne ja pidämme ne ajan tasalla. Te kirjoitatte meille, me huolehdimme kaikesta. Verkkotunnus ja yrityssähköposti sisältyvät.
Yleensä ei. Ilmoitus kertoo, että WordPress ei saanut yhteyttä tietokantaan, eikä sitä, että tietokanta olisi kadonnut. Jos phpMyAdmin näyttää yhä sivuston taulut, sivunne, artikkelinne ja asetuksenne ovat tallessa.
Koska uudessa webhotellissa on eri tietokantatunnukset: tietokannan nimi, käyttäjä, salasana ja joskus palvelimen osoite. Kopioikaa uuden hallintapaneelin arvot wp-config.php-tiedoston kohtiin DB_NAME, DB_USER, DB_PASSWORD ja DB_HOST.
WordPressin uudelleenasennus jättää ennalleen sekä wp-config.php-tiedoston tunnukset että tietokantapalvelimen tilan, ja juuri ne aiheuttavat tämän ilmoituksen. Testatkaa ensin tunnukset, sitten palvelin ja sitten taulujen eheys.
Ylikuormituksesta eikä asetuksesta: liikaa samanaikaisia yhteyksiä, liikennepiikki tai botit. Webhotellin hallintapaneelin käyttölokit ja resurssien käyttö näyttävät, mitä virheen hetkellä tapahtui.
Simafri
Jutellaan hankkeestasi
Kerro meille muutamalla sanalla, mitä tarvitset: vastaamme sinulle nopeasti.
Kiitos! Pyyntösi on lähetetty. Vastaamme sinulle pian.
Suositko sähköpostia? Kirjoita meille osoitteeseen support@simafri.com.