“Error establishing a database connection” in WordPress

De foutmelding “error establishing a database connection” is een foutmelding die WordPress geeft wanneer er geen verbinding kan worden gemaakt tussen WordPress en je MySQL-database. De foutmelding in het Nederlands luidt: “fout bij het maken van een databaseverbinding”.

Op de screenshot bovenaan dit artikel kun je zien hoe deze foutmelding er uit ziet. In dit artikel probeer ik je te helpen deze foutmelding te verhelpen.

Oorzaken van de “Error establishing a database connection” foutmelding

Om te begrijpen hoe je de database-foutmelding kunt oplossen, is het handig om te begrijpen waardoor deze foutmelding wordt veroorzaakt.

Kort gezegd is WordPress het CMS (Content Management Systeem) waarmee jij je website beheert. Hoewel WordPress zelf niet meer is dan een bundel bestanden in een folder, bewaart WordPress alle inhoud, instellingen en meer in een MySQL-database. De verbinding tussen WordPress en de MySQL-database wordt geregeld in het wp-config.php bestand. Dit bestand is eigenlijk het “hart” van je website en hierin staan dus ook de login-gegevens van de database.

Als deze database tijdelijk onbereikbaar is, of WordPress om een andere reden niet bij de database kan komen, dan krijg je de foutmelding te zien. Er zijn verschillende redenen denkbaar dat je MySQL-database onbereikbaar is:

  • De login-gegevens van je database zijn niet (meer) geldig.
  • Je database is beschadigd, bijvoorbeeld door een hacker of een slechte WordPress-plugin.
  • De database is overbelast doordat je website te veel bezoekers tegelijk heeft.
  • Jouw hostingpartij heeft een tijdelijke storing op de server waar de databases staan.

Let op:
Maak voordat je één van de onderstaande oplossingen uitprobeert, een backup van je WordPress-website. Een goede hostingpartij (zoals SiteGround) doet dit automatisch, maar soms moet je dit handmatig doen.

Mogelijke oplossingen

Ik laat nu verschillende mogelijke oplossingen zien die kunnen helpen bij het oplossen van deze foutmelding.

Controleer wp-config.php

Als je website geen verbinding kan maken met je database, is het logisch om eerst te kijken naar het wp-config.php bestand. In dit bestand staan de login-gegevens van je database. Kloppen deze nog?

/** The name of the database for WordPress */
define( 'DB_NAME', 'database_naam' );

/** MySQL database username */
define( 'DB_USER', 'database_gebruikersnaam' );

/** MySQL database password */
define( 'DB_PASSWORD', 'database_wachtwoord' );

/** MySQL hostname */
define( 'DB_HOST', 'localhost' );
wp-config.php
wp-config.php

In de code hierboven zie je welke regels in het wp-config.php bestand invloed hebben op je database-verbinding. Het gaat hier vooral om de naam, gebruikersnaam en wachtwoord van je database.

Als je niet zeker weet of deze gegevens nog kloppen, ga dan naar het controlepaneel van je hostingpakket en wijzig hier het wachtwoord en de gebruikersnaam van je database. Zorg vervolgens dat wp-config.php dezelfde gebruikersnaam en wachtwoord gebruikt. Je kunt wp-config.php bereiken via een FTP-verbinding (bijvoorbeeld met behulp van FileZilla voor Windows of mijn persoonlijk favoriet: Transmit voor Mac).

Controleer of je database-server een storing heeft

Heb je meer dan één website bij dezelfde hostingpartij? Als alle websites dezelfde foutmelding laten zien, dan kan het zomaar zijn dat er een storing is opgetreden op de server waar jouw database gehost wordt. Vervelend, maar het kan gebeuren.

Zeker bij “shared” hosting-pakketten staan vaak veel databases op dezelfde server, en gaat er wel eens (tijdelijk) iets mis. In dit geval is het het beste om contact op te nemen met je hostingpartij. Zij kunnen meestal bevestigen of het om een storing gaat en hoe lang de storing ongeveer gaat duren.

WordPress database repareren

Als de bovenstaande twee mogelijke oplossingen nog niet geholpen hebben, dan kan het zijn dat WordPress een database-reparatie nodig heeft. We zeiden het eerder in dit artikel al: maak altijd eerst een backup voordat je dit doet.

Om je database te repareren, moet je het volgende stukje code toevoegen aan je wp-config.php bestand:

define( 'WP_ALLOW_REPAIR', true );

Het wp-config.php bestand kun je benaderen via FTP.

Zodra je de bovenstaande code hebt toegevoegd, kun je je database repareren door naar de volgende URL te gaan:

www.wouterpostma.com/wp-admin/maint/repair.php

Vervang hierbij de domeinnaam met jouw eigen website. Als je WP_ALLOW_REPAIR op de juiste manier hebt ingesteld én je website kan de database repareren, dan zou je het volgende scherm te zien moeten krijgen:

WordPress database repareren
WordPress database repareren

Klik hier op “Repair Database” (of “Database Repareren”) om de reparatie te starten. WordPress bekijkt nu per tabel in je database of alles in orde is:

WordPress database reparatie
WordPress database reparatie geeft aan dat alle tabellen in mijn database “okay” zijn.

Als je klaar bent, haal je het stukje code weer weg uit je wp-config.php bestand. Anders kunnen onbevoegden jouw database-reparatie uitvoeren en zien welke tabellen er (niet) in orde zijn.

Als er een tabel in je database niet in orde was, dan zou de database-reparatie de oplossing kunnen zijn. Zo niet, lees dan verder.

Nieuwe gebruiker toevoegen

Het kan soms helpen om een nieuwe gebruiker aan te maken voor je database. Dit kun je doen vanuit het controlepaneel van je hostingpakket (bijvoorbeeld DirectAdmin).

Maak een nieuwe gebruiker aan en een nieuw wachtwoord, en wijzig vervolgens de relevante regels in het wp-config.php bestand:

/** MySQL database username */
define( 'DB_USER', 'database_gebruikersnaam' );

/** MySQL database password */
define( 'DB_PASSWORD', 'database_wachtwoord' );

In sommige gevallen lost dit het probleem op.

WordPress site URL

Heb je je website recentelijk verhuisd? Bijvoorbeeld naar een nieuwe domeinnaam of een verhuizing van HTTP naar HTTPS? Heel soms komt het voor dat WordPress de nieuwe URL niet direct oppakt. Je zult dan de WordPress Site URL in je database handmatig moeten aanpassen.

Om je database te openen, moet je de phpMyAdmin-tool openen. Meestal kan dit vanuit je controlepaneel (zoals DirectAdmin) doen bij de Database-instellingen. Log in met de gebruikersnaam en het wachtwoord van je database. Dat zijn dezelfde login-gegevens die je in het wp-config.php bestand hebt staan.

Zoek nu aan de linkerkant van het scherm naar de wp_options tabel:

wp_options tabel in de WordPress database
Klik op de wp_options tabel

Aan de rechterkant zul je nu twee opties zien staan, siteurl en home:

Site en Home URL van WordPress in de database
Site en Home URL van WordPress in de database

Beiden moeten op de juiste URL ingesteld staan. Het is hierbij belangrijk dat je de URL precies opschrijft zoals deze is, dus met https:// of juist zonder. Ook eindigt deze URL niet met een forward slash (/).

Zoek hulp

Heeft geen van de hierboven genoemde oplossingen geholpen? Zoek dan hulp, bijvoorbeeld van je hostingpartij. Het probleem zou ingewikkelder kunnen zijn en dan is het nuttig als er een technisch persoon mee kijkt.

Een goede hostingpartij zal altijd meekijken en zelfs je website monitoren op eventuele “downtime”. Ik maak zelf veel gebruik van iXL Hosting en SiteGround voor het hosten van WordPress-sites. Ik heb vrijwel nooit problemen, maar als ze er zijn dan kijken deze hostingpartijen graag mee.

Tot slot

Er zijn veel redenen denkbaar voor de Error establishing a database connection-foutmelding. Als geen van de hierboven genoemde oplossingen het probleem heeft opgelost, neem dan contact op met je hostingpartij.

Als je je website door iemand hebt laten bouwen, dan kun je eventueel ook die persoon vragen om ernaar te kijken. Denk er hierbij wel aan dat die persoon niet altijd verantwoordelijk is voor de foutmelding op je website. Meestal komt deze database-foutmelding namelijk niet tot stand tijdens het bouwen van je website.

Dankjewel!
Bedankt voor het lezen van mijn blog. Als dit je geholpen heeft, overweeg dan om mij te volgen op Twitter of abonnee te worden van mijn YouTube-kanaal. Je kunt ook een reactie achterlaten onderaan dit artikel. Bedankt!

Wouter Postma
Wouter Postma

Hi! Ik ben Wouter Postma. Ik ben gespecialiseerd in online marketing en werk al heel lang met WordPress. Op deze website schrijf ik blogs over mijn ervaringen en deel ik tips & tricks.

Geef een reactie

Je e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *