Van alle foutmeldingen die WordPress kan tonen, is dit misschien de meest beangstigende: “Error establishing a database connection”. Het woord database roept bij ondernemers meteen het beeld op van verloren teksten, verdwenen bestellingen, jaren werk weg. Een bloemist uit Alkmaar belde ons in paniek omdat ze dacht dat haar hele webshop gewist was.
Dat was hij niet. De melding Error establishing a database connection betekent bijna nooit dat gegevens weg zijn. Hij betekent dat WordPress op dit moment niet bij de database kan komen. De inhoud staat er nog; de verbinding is verbroken. In dit artikel leggen we uit wat er tussen WordPress en de database zit, welke vijf oorzaken de verbinding verbreken en hoe u ze in volgorde controleert.
Hoe WordPress met de database praat
WordPress bestaat uit twee delen. De bestanden op de server bevatten de code, het thema, de plugins en uw geüploade afbeeldingen. De database bevat al het andere: pagina’s, berichten, instellingen, gebruikers, bestellingen. Bij elk bezoek maakt WordPress verbinding met de database om de inhoud op te halen.
Voor die verbinding heeft WordPress vier gegevens nodig, die in het bestand wp-config.php staan: de naam van de database, de gebruikersnaam, het wachtwoord en het adres van de databaseserver. Klopt een van die vier niet, of is de databaseserver niet bereikbaar, dan verschijnt de melding. Meer is het niet.
Vijf oorzaken van de foutmelding
Oorzaak 1: verkeerde inloggegevens
De vaakst voorkomende oorzaak, vooral direct na een verhuizing, een wachtwoordwijziging in het hostingpaneel of een handmatige aanpassing aan wp-config.php. De hosting heeft bijvoorbeeld het databasewachtwoord opnieuw ingesteld, of bij het verhuizen is de databasenaam veranderd terwijl wp-config.php nog de oude bevat.
Controle: open wp-config.php via FTP of de bestandsbeheerder en vergelijk de vier waarden met wat in het hostingpaneel staat onder databases. Let op hoofdletters en op voorvoegsels; veel hostingpartijen zetten uw accountnaam vóór de databasenaam. Het adres van de databaseserver is bij de meeste Nederlandse hostingpakketten localhost, maar niet altijd; sommige gebruiken een aparte servernaam.
Als de site na een verhuizing deze fout geeft, is dit vrijwel zeker het antwoord. Een bredere controlelijst voor problemen na een verhuizing staat in dit artikel over een site die na een verhuizing niet goed werkt.
Oorzaak 2: de databaseserver is overbelast of uitgevallen
Op gedeelde hosting draait de databaseserver voor veel klanten tegelijk. Bij overbelasting weigert hij nieuwe verbindingen, met deze melding als gevolg. Kenmerk: de fout komt en gaat, vaak op drukke momenten, en verdwijnt vanzelf weer. Ook een databaseserver die tijdelijk plat ligt door onderhoud of een storing geeft dit beeld.
Controle: probeer het beheer (/wp-admin) te openen. Geeft dat dezelfde melding, en zijn de inloggegevens correct, dan is de server de verdachte. Kijk op de statuspagina van de hosting en probeer het na een paar minuten opnieuw.
Oorzaak 3: beschadigde databasetabellen
Soms is de verbinding zelf in orde, maar zijn een of meer tabellen beschadigd, bijvoorbeeld na een stroomuitval op de server of een volle schijf tijdens het schrijven. WordPress toont dan soms een iets andere melding: “One or more database tables are unavailable”. In het beheer kan dan een deel wel werken en een deel niet.
Oplossing: WordPress heeft een ingebouwde reparatiefunctie. Voeg in wp-config.php de regel define(‘WP_ALLOW_REPAIR’, true); toe boven de regel met “That’s all, stop editing”, en open daarna uwdomein.nl/wp-admin/maint/repair.php. Kies “Repair Database”. Verwijder de regel daarna weer, want de pagina is anders voor iedereen toegankelijk. Ook via phpMyAdmin in het hostingpaneel kunt u tabellen repareren.
Oorzaak 4: de server is vol of uit zijn limieten
Een volle schijf, een database die groter is geworden dan het hostingpakket toestaat, of een limiet op het aantal gelijktijdige verbindingen. Dit wordt regelmatig veroorzaakt door een database die jaren niet is opgeschoond: tienduizenden revisies, verlopen sessies, logtabellen van plugins. Controleer in het hostingpaneel de schijfruimte en de grootte van de database ten opzichte van uw pakket. Hoe u een database veilig opschoont, leest u in dit artikel over het opschonen van de WordPress-database.
Oorzaak 5: een gewijzigd of beschadigd wp-config.php
Minder vaak, maar niet te vergeten: het bestand zelf is aangetast. Door een mislukte bewerking, door een plugin die er iets in schreef, of in zeldzame gevallen door een inbraak waarbij het bestand is aangepast. Controleer de wijzigingsdatum van het bestand. Is die recent terwijl u niets heeft gedaan, wees dan extra alert en vergelijk het bestand met een back-up.
Het stappenplan in volgorde
- Adem. Uw gegevens zijn zeer waarschijnlijk niet weg.
- Test het beheer. Zelfde melding? Dan zit het in de verbinding. Werkt het beheer wel? Dan zijn tabellen beschadigd, ga naar stap 5.
- Kijk op de statuspagina van de hosting en wacht vijf minuten. Verdwijnt de fout, dan was het de server.
- Vergelijk de vier gegevens in wp-config.php met het hostingpaneel. Corrigeer wat niet klopt.
- Repareer de tabellen via de ingebouwde reparatiefunctie of phpMyAdmin.
- Controleer schijfruimte en databasegrootte.
- Neem contact op met de hosting als de gegevens kloppen, de tabellen in orde zijn en de fout blijft. Zij kunnen zien of de databaseserver verbindingen weigert.
- Zet als laatste redmiddel een back-up van de database terug, en dan alleen de database, niet de bestanden, zodat u niets anders overschrijft.
Bij de bloemist uit Alkmaar was het oorzaak 1: de hostingpartij had bij een servermigratie het databasewachtwoord opnieuw ingesteld en dat per e-mail gemeld, in een bericht dat in de spammap was beland. Het nieuwe wachtwoord in wp-config.php zetten en de webshop deed het weer, met alle bestellingen erin.
Zo voorkomt u het
- Bewaar de databasegegevens op een veilige plek, los van de site, zodat u ze bij de hand heeft.
- Maak regelmatig back-ups van de database, bij een webshop dagelijks.
- Houd de database schoon, zodat u niet tegen pakketlimieten aanloopt.
- Lees e-mails van uw hostingpartij, ook de saaie.
Komt u er na stap 4 niet uit, of is de site een webshop waar elk uur uitval geld kost, dan is het verstandig om het uit handen te geven. Het oplossen van een databasefout is dagelijks werk binnen de bugfixing van WordPress-sites; bij WebMaintor is het in de meeste gevallen binnen het uur hersteld, met een back-up van de database vooraf. Wat u het bureau meegeeft: toegang tot het hostingpaneel en het tijdstip waarop de fout begon. Meer is meestal niet nodig.


