De “Error establishing a database connection” is waarschijnlijk een van de meest voorkomende fouten die WordPress gebruikers kunnen tegenkomen. Het is nauw verbonden met het White Screen Of Death (WSOD). Deze fout betekent dat je website niet meer communiceert of toegang heeft tot je WordPress database; je hele website gaat dus plat.

Je moet deze fout onmiddellijk oplossen, want dit kan directe gevolgen hebben voor je sales, verkeer en analytics.

Maar maak je geen zorgen, vandaag bespreken we enkele veel voorkomende scenario’s die deze fout veroorzaken en enkele eenvoudige manieren om je site in een mum van tijd weer aan de praat te krijgen.

Bekijk onze videohandleiding voor het oplossen van de “Error Establishing a Database Connection”

Dit is hoe het werkt: alle informatie op je WordPress site, zoals berichtgegevens, paginagegevens, meta-informatie, plugin-instellingen, inloggegevens, enz. is opgeslagen in je MySQL database. De enige gegevens die daar niet zijn opgeslagen zijn media content zoals afbeeldingen en je thema/plugin/corebestanden zoals index.php, wp-login.php, enz.

Wanneer iemand je website bezoekt, voert PHP de code op de pagina uit, raadpleegt de informatie uit de database, en toont die dan aan de bezoeker in zijn browser.

Als dit niet goed werkt, krijg je het bericht “Error establishing a database connection”, zoals hieronder te zien is. De hele pagina is leeg omdat er geen gegevens kunnen worden opgehaald om de pagina te renderen, omdat de verbinding niet goed werkt. Dit maakt niet alleen de frontend van je site kapot, maar zorgt er ook voor dat je geen toegang hebt tot je WordPress dashboard.

Het Error establishing a database connection bericht in Chrome
Het “Error establishing a database connection” bericht in Chrome.

Bezoekers zien deze fout echter misschien niet meteen op de frontend. Dat komt omdat je site hoogstwaarschijnlijk nog wordt geleverd vanuit de cache – totdat die verloopt. Bij Kinsta bijvoorbeeld worden alle WordPress sites standaard een uur in de cache geplaatst. Als een site nog steeds uit de cache levert, kan hij daarom nog enige tijd acceptabel lijken voor een bezoeker.

Bij Kinsta kan ons ondersteuningsteam de duur van je cache verhogen tot bijvoorbeeld een dag of zelfs een week als je dat wilt. Als je een site hebt die niet vaak verandert, kan dit de prestaties van je site verhogen, omdat hij niet zo vaak nieuwe bestanden hoeft te pakken nadat de cache is verlopen. En in gevallen als het bovenstaande zou de frontend van de site in de meeste gevallen (tenzij je een script of deel van je site hebt dat de cache kapot maakt) veel langer in de lucht blijven.

Als bezoekers je site proberen te bereiken terwijl deze fout optreedt, zal dat een 500 HTTP statuscode opleveren in je logs. Deze zelfde statuscode verschijnt bij een “Internal server error.” Het betekent dat er iets mis is gegaan op de server, en dat de gevraagde resource niet is afgeleverd. Als alles goed werkt, genereert je site een 200 HTTP statuscode, wat betekent dat alles in orde is.

Klanten van Kinsta kunnen de logs van hun site bekijken in het MyKinsta dashboard:

“Error establishing a database connection” 500 error zichtbaar in het access.log.

Als je een Kinsta klant bent, zou je ook kunnen kijken naar het 500 error breakdownrapport in MyKinsta analytics om te zien of het iets is dat een terugkerend probleem is geweest.

500 error breakdown
500 error breakdown.

Wat veroorzaakt de “Error Establishing a Database Connection”?

Waarom gebeurt dit dan precies? Hieronder staan een paar veel voorkomende redenen. En maak je geen zorgen, we gaan op elk van deze dieper in, zodat je weet hoe je ze kunt oplossen. Meestal kun je deze fout in minder dan 15 minuten oplossen.

Onjuiste inloggegevens voor de database

Je WordPress site gebruikt aparte inloggegevens om verbinding te maken met zijn MySQL database.

Beschadigde database

Met zoveel bewegende delen als thema’s, plugins, en gebruikers die ze voortdurend verwijderen en installeren, raken databases soms beschadigd. Dit kan komen door een ontbrekende of individueel beschadigde tabel, of misschien is er per ongeluk wat informatie verwijderd.

Beschadigde bestanden in je WordPress installatie

Dit kan soms zelfs gebeuren door hackers.

Problemen met je databaseserver

Er kunnen verschillende dingen mis zijn aan de kant van de webhost, zoals overbelasting van de database door een verkeerspiek of niet reageren door te veel gelijktijdige verbindingen. Dit komt vaak voor bij gedeelde hosts, omdat die dezelfde resources gebruiken voor veel gebruikers op dezelfde servers.

Piek in het verkeer

Afhankelijk van de webhost die je gebruikt, kan je server misschien niet veel gelijktijdige databaseverbindingen aan. Een toename van verkeer kan leiden tot tijdelijke problemen met de database.

Hoe kun je de “Error Establishing a Database Connection” oplossen?

Voordat je de fout oplost, raden we aan een backup te maken van de WordPress site. Veel van de onderstaande aanbevelingen gaan over het wijzigen van informatie in je database, dus je wilt het niet erger maken. Je moet altijd een backup maken voordat je dingen op je WordPress site probeert te repareren, hoe technisch onderlegd je ook denkt te zijn.

Je kunt een populaire WordPress backupplugin zoals VaultPress of WP Time Capsule gebruiken om een backup te maken van je bestanden en database.

Als je een Kinsta gebruiker bent, kun je gebruik maken van onze ingebouwde backupfeature. Klik in je WordPress site in MyKinsta en selecteer Backups. Klik vervolgens op het tabblad Handmatig en klik op de knop Nu een backup maken om handmatig een backup te maken.

Screenshot: Handmatig een WordPress backup maken in MyKinsta.
Het maken van een WordPress backup in MyKinsta.

Je hebt meteen ook de optie om een backup terug te zetten naar een productie- of testomgeving. Of je kunt handmatig een backup maken van je MySQL database met phpMyAdmin. Zodra je met succes een backup hebt gemaakt, is het tijd om problemen met je databaseverbinding op te lossen.

1. Controleer de inloggegevens van je database

Het eerste wat je moet doen is controleren of de inloggegevens van je database correct zijn. Dit is verreweg de meest voorkomende reden waarom het bericht “Error establishing a database connection” verschijnt. Vooral vlak nadat mensen migreren naar een nieuwe hostingprovider. De verbindingsgegevens voor je WordPress site worden opgeslagen in het bestand wp-config.php, dat meestal in de root (hoofdmap) van je WordPress site staat.

Het bevat vier belangrijke stukjes informatie die correct moeten zijn om de verbinding succesvol te laten verlopen.

Naam van de database

// MySQL settings

// The name of the database for WordPress 

define('DB_NAME', 'xxxxxx');

MySQL database gebruikersnaam

// MySQL database username 

define('DB_USER', 'xxxxxx');

MySQL database wachtwoord

// MySQL database password 

define('DB_PASSWORD', 'xxxxxxxxx');

MySQL hostnaam (server)

// MySQL hostname 

define('DB_HOST', 'localhost');

Om je wp-config.php bestand te openen, kun je via SFTP verbinding maken met je site en naar de root van je site bladeren. Of, als je cPanel gebruikt, kun je op “File Manager” klikken, naar de root van je site bladeren, en rechts klikken om het bestand te bewerken.

Screenshot: Locatie van het pictogram File Manager in cPanel.
Het pictogram File Manager vinden in cPanel.

Hieronder zie je een voorbeeld van hoe het bestand eruit ziet als het wordt geopend.

wp-config.php inloggegevens
wp-config.php inloggegevens.

Je moet nu je huidige waarden vergelijken met die op je server om er zeker van te zijn dat ze kloppen. Volg de onderstaande aanwijzingen voor cPanel en Kinsta gebruikers.

Database-inloggegevens controleren in cPanel

Het eerste dat je moet controleren is de databasenaam. Hiervoor moet je inloggen op phpMyAdmin in cPanel onder de sectie Databases.

Screenshot met het phpMyAdmin icoontje in cPanel.
Het phpMyAdmin icoontje in cPanel.

Je zou je databasenaam onderaan links moeten zien staan. Je kunt de “information_schema” database negeren, omdat die door de host wordt gebruikt. Je zult die naam dan willen vergelijken met de DB_NAME waarde in je wp-config.php bestand. Komen ze overeen, dan is dit niet het probleem. Komen ze niet overeen, dan moet je je wp-config.php bestand bijwerken.

Screenshot: De databasenaam opzoeken in phpMyAdmin.
De databasenaam opzoeken in phpMyAdmin.

Je kunt ook controleren of dit de juiste database is door ervoor te zorgen dat het de URL van je WordPress site bevat. Klik hiervoor op de database en vervolgens in de tabel wp_options (deze kan om veiligheidsredenen iets anders zijn, zoals wpxx_options). Bovenaan de tabel zie je waarden voor de URL en de naam van je site. Als deze overeenkomen met je huidige site, kun je er zeker van zijn dat je op de juiste plaats bent.

Controleer de URL van je site in phpMyAdmin
Controleer de URL van je site in phpMyAdmin.

Als je databasenaam correct was en je krijgt nog steeds de melding “Error establishing a database connection”, dan zul je ook je gebruikersnaam en wachtwoord willen controleren. Daarvoor moet je een nieuw PHP bestand aanmaken in de hoofdmap van je WordPress site en de volgende code invoeren. Je kunt het noemen zoals je wilt, bijvoorbeeld checkdb.php. Verander de waarden van db_user en db_password met die in je wp-config.php bestand.

<?php

$test = mysqli_connect('localhost', 'db_user', 'db_password');

if (!$test) {

die('MySQL Error: ' . mysqli_error());

}

echo 'Database connection is working properly!';

mysqli_close($testConnection);

Browse dan door het bestand op je WordPress-site: https://yourdomain.com/checkdb.php. Als je een “MySQL Error: Access denied,” dan weet je dat je gebruikersnaam of wachtwoord verkeerd is, en moet je doorgaan naar de volgende stap om je gegevens opnieuw in te stellen.

Toegang geweigerd voor localhost
Toegang geweigerd MySQL.

Hieronder staat de boodschap die je wilt zien: “Database connection is working properly.” Maar natuurlijk, als dat zo was, dan zou je hier niet zijn. Verwijder dit bestand nadat je klaar bent met testen.

Database connection working properly
Database connection is working properly.

Vervolgens moet je dus je gebruikersnaam en wachtwoord opnieuw instellen. Klik in cPanel op MySQL Databases onder de Databases sectie.

MySQL databases in cPanel
cPanel MySQL databases.

Scroll naar beneden en maak een nieuwe MySQL gebruiker aan. Probeer een unieke gebruikersnaam en wachtwoord te kiezen, zodat ze niet gemakkelijk geraden kunnen worden. De wachtwoordgenerator die ze bieden werkt uitstekend. Klik dan op “Create User.” Je kunt ook het wachtwoord van de huidige databasegebruiker in dit scherm veranderen.

Maak een nieuwe MySQL gebruiker in cPanel
Maak een nieuwe MySQL gebruiker.

Scroll dan naar beneden en voeg je nieuwe gebruiker toe aan je database. Het volgende scherm vraagt welke privileges je wilt toekennen. Selecteer “All Privileges”

Gebruiker toevoegen aan de database in cPanel
Gebruiker toevoegen aan de database in cPanel.

Neem dan die nieuwe inloggegevens en werk je wp-config.php bestand bij. Je moet hier de waarden DB_USER en DB_PASSWORD bijwerken. Je kunt ook het testbestand van eerder opnieuw uitvoeren. Dit zou dan het probleem met je inloggegevens moeten oplossen. Zo niet, dan kun je nog steeds de verkeerde hostnaam (DB_HOST) hebben. Sommige hosts gebruiken andere waarden.

Bekijk een lijst met veel voorkomende DB hostwaarden. Meestal zal dit localhost zijn. Maar je kunt altijd contact opnemen met je hostingprovider of hun documentatie raadplegen als je het niet zeker weet. Sommige gebruiken ook 127.0.0.1 in plaats van localhost.

Als je alles hierboven hebt gevolgd en nog steeds het bericht “Error establishing a database connection” krijgt, ga dan verder met de volgende stappen voor troubleshooting hieronder.

Databasegegevens controleren met Kinsta

Als je een Kinsta gebruiker bent, is het controleren van je inloggegevens met je wp-config.php bestand en de server veel gemakkelijker! Je hoeft alleen maar te klikken op de Info sectie van je site binnen het MyKinsta dashboard, en onderaan zie je de databasenaam, gebruikersnaam en wachtwoord. Standaard gebruikt Kinsta localhost voor de DB_HOST.

Het controleren van de databasegegevens in MyKinsta.
Het controleren van de databasegegevens in MyKinsta.

Neem nu die nieuwe inloggegevens en werk je wp-config.php bestand bij. Je zult de waarden DB_USER en DB_PASSWORD willen bijwerken. Dit zou dan je inloggegevens probleem moeten oplossen. Als je deze gegevens opnieuw moet instellen, neem dan contact op met ons ondersteuningsteam. Als je alles hierboven hebt gevolgd en nog steeds de melding “Error establishing a database connection” krijgt, ga dan verder met de volgende stappen voor troubleshooting hieronder.

2. Beschadigde WordPress Database repareren

In sommige gevallen kan het zijn dat je database beschadigd (corrupt) is geraakt. Dit kan af en toe gebeuren (hoewel niet erg vaak) omdat in de loop der tijd voortdurend honderden tabellen worden toegevoegd/verwijderd door nieuwe plugins en thema’s. Als je probeert in te loggen op het dashboard van je WordPress site en je krijgt de volgende foutmelding, dan betekent dit dat je database corrupt is: “One or more database tables are unavailable. The database may need to be repaired.” Het is belangrijk om op te merken dat je deze fout mogelijk alleen op de backend ziet, terwijl je aan de voorkant het bericht “Error establishing a database connection” ziet.

WordPress heeft een databasereparatiemodus die je kunt starten. Voeg het volgende toe aan de onderkant van je wp-config.php bestand.

define('WP_ALLOW_REPAIR', true);
Momenteel in WordPress reparatiemodus
WordPress reparatiemodus.

Browse dan naar de volgende locatie op je WordPress site: https://jouwdomein.com/wp-admin/maint/repair.php. Je krijgt dan de optie om de database te repareren of de database te repareren en te optimaliseren. Omdat je nu waarschijnlijk een storing op je site aan het oplossen bent, raden we je aan de optie database repareren te gebruiken, omdat die sneller is.

Repareer en optimaliseer de database in WordPress
WordPress database repareren.

Nadat je de bovenstaande reparatie van de database hebt uitgevoerd, moet je ervoor zorgen dat je de regel code die je hebt toegevoegd aan je wp-config.php bestand verwijdert. Anders heeft iedereen toegang tot de repair.php pagina. Als je cPanel gebruikt, kun je ook een reparatie uitvoeren vanuit de MySQL Databases pagina.

Herstel database optie in cPanel
cPanel reparatie database.

Of je kunt een reparatie uitvoeren vanuit phpMyAdmin. Log gewoon in op phpMyAdmin, klik op je Database en selecteer All tables. Klik dan in de dropdown op “Repair table” Dit is in wezen niets anders dan het REPAIR TABLE commando uitvoeren.

Tabellen repareren in phpMyAdmin
Tabellen repareren in phpMyAdmin.

En tenslotte zou je andere optie zijn om de reparatie uit te voeren met WP-CLI met het volgende commando:

wp db repair

Zie meer documentatie over het gebruik in de WordPress Developer Resources.

Als je je database wilt optimaliseren, hebben we een paar geweldige tutorials over het optimaliseren van WordPress revisies voor betere prestaties, samen met hoe je je MyISAM tabellen kunt converteren naar InnoDB. Als je nog steeds problemen hebt op je site, ga dan door naar de volgende stap.

Leessuggestie: Zo los je de “MySQL Server Has Gone Away” fout in WordPress op.

3. Beschadigde WordPress bestanden repareren

De volgende mogelijke reden dat je het bericht “Error establishing a database connection” ziet, is dat je WordPress corebestanden corrupt zijn geworden. Of dit nu voortkomt uit een probleem met het overzetten van bestanden via FTP, een hacker die toegang krijgt tot je site, of een probleem met je host, je kunt hem gelukkig snel verhelpen. We raden echter aan een backup van je site te maken voordat je dit probeert.

Je gaat de coreversie van WordPress op je site vervangen. Je raakt je plugins, thema’s of media niet aan, alleen de WordPress installatie zelf.

Je kunt echter hiermee wijzigingen of zelfgeschreven code kwijtraken die je hebt toegevoegd aan bestanden als .htaccess of wp-config.php. Als je een backup maakt van je website voordat je het probleem oplost, heb je kopieën van die bestanden die je later kunt herstellen.

Om te beginnen moet je een nieuwe WordPress kopie downloaden van WordPress.org.

WordPress downloadpagina
WordPress downloaden.

Pak dit bestand uit op je computer. Binnenin zul je de map wp-content en het bestand wp-config-sample.php willen verwijderen.

Pak het gedownloade bestand uit naar de computer
Verwijder wp-content map.

Upload nu de resterende bestanden via SFTP naar je site en overschrijf je bestaande bestanden. Dit zal alle problematische bestanden vervangen en ervoor zorgen dat je nieuwe bestanden hebt die schoon en niet corrupt zijn. Het wordt aanbevolen om je browsercache te wissen nadat je dit gedaan hebt. Controleer vervolgens je WordPress site om te zien of de fout nog steeds bestaat.

4. Controleren op problemen met je databaseserver

Als niets hierboven heeft geholpen om je probleem op te lossen, raden we je ten zeerste aan om het bij je hostingprovider na te vragen, want het kan een probleem zijn met je databaseserver. Als er bijvoorbeeld te veel gelijktijdige verbindingen met je database zijn, kan dat een fout opleveren. Dit komt omdat veel hosts hun servers beperken op hoeveel verbindingen tegelijk zijn toegestaan. Het gebruik van een cachingplugin kan helpen de database interacties op je site te minimaliseren. Als je een Kinsta klant bent, heb je geen cachingplugins nodig, omdat we snelle caching op serverniveau hebben.

Dit probleem kan veel voorkomen op gedeelde hosts, omdat iemand anders theoretisch je site kan beïnvloeden. Dit komt omdat gedeelde hosts dezelfde resources voor verschillende servers gebruiken. Dit is nog een reden waarom we aanraden om managed WordPress hosting te gebruiken, zodat de boel niet overvol raakt. Het betekent ook dat de omgeving meestal is afgestemd op grote hoeveelheden verkeer, specifiek naar WordPress sites.

Het deskundige Kinsta ondersteuningsteam is altijd een klik verwijderd rechtsonder in het dashboard en 24/7 beschikbaar als je hulp nodig hebt. En vergeet niet dat we medewerkers hebben om je te helpen in meerdere talen, waaronder Engels, Spaans, Frans, Italiaans en Portugees.

Een bericht sturen naar Support in MyKinsta.
Een bericht sturen naar Support in MyKinsta.

5. Meest recente backup herstellen

En last but not least, je kunt altijd je toevlucht nemen tot een backup als dat nodig is. In sommige gevallen kan dit een snellere manier zijn om het probleem op te lossen, als je je geen zorgen maakt over het verlies van gegevens tussen het moment waarop je laatste backup werd gemaakt. Veel hosts hebben hun eigen backupherstelproces. Vergeet niet dat je misschien zowel je database als je bestanden moet herstellen.

Als je een Kinsta gebruiker bent, kun je snel een backup van je site terugzetten in de sectie Backups van je site. Kies het tijdstip waarop je wilt terugzetten en klik op “Herstellen naar“. Je kunt vervolgens kiezen of je wilt herstellen naar je testomgeving of je live site.

Een WordPress backup herstellen in MyKinsta.
Een WordPress backup herstellen in MyKinsta.

Je wordt nu gevraagd om het herstel te bevestigen. Voer je sitenaam in en klik op “OK” Er wordt ook een backup gemaakt op het moment van herstel, zodat je het herstel eventueel ongedaan kunt maken.

Bevestig je backupherstel
WordPress herstel bevestigen.

Samenvatting

Zoals je ziet, zijn er nogal wat manieren om de “Error establishing a database connection” in WordPress op te lossen. De meest voorkomende zijn ongeldige inloggegevens in het bestand wp-config.php. Controleren of die correct zijn is de beste plaats om te beginnen. Het laatste wat je wilt voor een website is downtime.

Hopelijk heeft een van de bovenstaande stappen je geholpen om je site weer aan de praat te krijgen. Vergeet niet dat je altijd je site kunt herstellen vanaf een backup als dat nodig is.

Ben jij het bericht “Error establishing a database connection” op je site tegengekomen? Zo ja, heb je het kunnen oplossen? Laat het ons hieronder in de comments weten.

Brian Jackson

Brian heeft een enorme passie voor WordPress, gebruikt het al meer dan tien jaar en heeft zelfs al aantal premium plugins ontwikkeld. Brian houdt van bloggen, films en hikes. Kom in contact met Brian op Twitter.