✦ Oplossingen · Database (MySQL/MariaDB)

Error establishing a database connection (WordPress)

WordPress toont 'Error establishing a database connection'? Controleer de gegevens in wp-config.php, of de databaseserver draait, of de gebruiker rechten heeft en of de database beschadigd is.

Waarom gebeurt dit?

WordPress haalt alles uit een MySQL- of MariaDB-database. Lukt de verbinding niet, dan toont het alleen deze melding. De oorzaak is meestal één van vier: verkeerde inloggegevens in wp-config.php, een databaseserver die niet draait of overbelast is, een gebruiker zonder rechten, of beschadigde tabellen.

Komt de melding plots, zonder dat er iets is aangepast, dan ligt het vaak aan de server: de database is gestopt, de schijf is vol of er zijn te veel verbindingen. Kwam hij na een verhuizing of wachtwoordwijziging, dan kloppen de gegevens in wp-config.php niet meer.

Zo los je het op, stap voor stap

Menunamen kunnen per versie of toestel iets anders heten. Loop de stappen op volgorde af en stop zodra het werkt.

  1. Controleer de gegevens in wp-config.php

    DB_NAME, DB_USER, DB_PASSWORD en DB_HOST moeten exact overeenkomen met wat de hosting opgeeft. DB_HOST is vaak localhost, maar bij sommige hosters een aparte servernaam of een poort.

    define( 'DB_NAME', 'databasenaam' );
    define( 'DB_USER', 'gebruiker' );
    define( 'DB_PASSWORD', 'wachtwoord' );
    define( 'DB_HOST', 'localhost' );
  2. Test de inloggegevens los

    Log met dezelfde gegevens in via phpMyAdmin van de hosting, of op de opdrachtregel. Lukt dat niet, dan ligt het aan gebruiker of wachtwoord.

    mysql -u gebruiker -p -h localhost databasenaam
  3. Controleer of de databaseserver draait

    Op een eigen server bekijk je de status en het log. Is de schijf vol, dan stopt MySQL/MariaDB vaak met schrijven of starten.

    sudo systemctl status mariadb   # of: mysql
    df -h
  4. Herstel beschadigde tabellen

    Meldt WordPress op /wp-admin dat tabellen hersteld moeten worden, zet dan tijdelijk deze regel in wp-config.php en open /wp-admin/maint/repair.php. Haal de regel daarna direct weer weg; de pagina is zonder inloggen bereikbaar.

    define( 'WP_ALLOW_REPAIR', true );
  5. Kijk naar te veel verbindingen

    Is de site druk of is er een aanval op wp-login.php, dan kan de server het maximum aantal verbindingen bereiken. Zie Too many connections.

Lukt het niet? Wij helpen

Kom je er met deze stappen niet uit, of wil je het liever niet zelf doen? We kijken online mee of komen langs. Hulp op afstand kost €20 per uur; komen we langs, dan is de prijs op aanvraag. Je weet vooraf waar je aan toe bent.

Aanvraag

Hulp aanvragen

Schrijf kort wat er misgaat en wat je al hebt geprobeerd. Kies of we bellen, online meekijken of langskomen.

Veelgestelde vragen

Vragen over dit probleem

De site werkt weer na een paar minuten, en dan weer niet.

Dat wijst op overbelasting: te veel verbindingen of een databaseserver die door geheugengebrek wordt herstart. Het log van de databaseserver en de toegangslog van de site laten zien wat er gebeurt.

Ik heb het databasewachtwoord gewijzigd en nu werkt niets.

Zet het nieuwe wachtwoord ook in wp-config.php bij DB_PASSWORD.

Kunnen jullie meekijken?

Ja. We controleren de verbinding, de server en de tabellen en zetten de site terug in de lucht.