Uw site toont nog maar één regel: “Fout bij het maken van de databaseconnectie”. WordPress kon de database niet openen waarin uw pagina’s, instellingen en accounts staan. Uw inhoud is meestal intact: deze gids laat zien hoe u vindt welke van de vier mogelijke oorzaken speelt, en hoe u die verhelpt.
wp-config.php. Uw inhoud is meestal intact.DB_NAME, DB_USER, DB_PASSWORD en DB_HOST in wp-config.php met die in het paneel van de hostingprovider.Voor elke pagina die hij toont, opent WordPress een verbinding met zijn MySQL- of MariaDB-database, met vier gegevens die in wp-config.php staan, in de root van de site:
define( 'DB_NAME', 'naam_van_de_database' );
define( 'DB_USER', 'gebruikersnaam' );
define( 'DB_PASSWORD', 'wachtwoord' );
define( 'DB_HOST', 'localhost' );
“Fout bij het maken van de databaseconnectie” betekent dat deze verbinding is mislukt. Vier oorzaken leiden ertoe: gegevens die niet meer kloppen, een databaseserver die uitgevallen of onbereikbaar is, een overbelaste server, of een beschadigde database. De secties hieronder lopen ze langs, van de eenvoudigst te controleren tot de zeldzaamste.
Ligt het aan de server, open dan een ticket bij de hostingprovider met het tijdstip waarop de storing begon en de exacte melding. Aan de site hoeft u intussen niets te wijzigen.
Dit is de meest voorkomende oorzaak na een verhuizing van de site, een gewijzigd databasewachtwoord in het paneel van de hostingprovider, of het terugzetten van een back-up. Vergelijk de vier waarden in wp-config.php met het onderdeel databases in het paneel van uw hostingprovider:
DB_NAME en DB_USER: veel hostingproviders zetten de accountnaam ervoor (account_wordpress). Het voorvoegsel hoort bij de naam.DB_PASSWORD: stel bij twijfel in het paneel een nieuw wachtwoord in voor de gebruiker, en zet het in het bestand.DB_HOST: localhost bij veel hostingproviders, maar niet bij allemaal. Sommige geven een servernaam of een adres, soms gevolgd door een poort (:3306). De exacte waarde staat in het paneel.Een wachtwoord met een apostrof (') breekt de PHP-tekenreeks eromheen in wp-config.php af. Zet er een backslash voor (\'), of kies een wachtwoord zonder apostrof.
WordPress toont een algemene melding. MySQL zegt precies wat er misgaat. Twee manieren om het te vragen, met de waarden uit wp-config.php:
mysql -h localhost -u gebruikersnaam -p naam_van_de_database
Met WP-CLI leest wp db check rechtstreeks wp-config.php en controleert het de tabellen met die gegevens.
Zet dit bestand onder een moeilijk te raden naam in de root van de site, open het in de browser en verwijder het meteen daarna: het bevat het wachtwoord van de database.
<?php
mysqli_report(MYSQLI_REPORT_OFF);
$verbinding = @mysqli_connect('localhost', 'gebruikersnaam', 'wachtwoord', 'naam_van_de_database');
echo $verbinding ? 'Verbinding gelukt' : 'Mislukt: ' . mysqli_connect_error();
De eerste regel telt: sinds PHP 8.1 werpt een mislukte verbinding standaard een exception op, en de pagina zou wit blijven in plaats van de melding van MySQL te tonen.
| MySQL antwoordt | De oorzaak | De oplossing |
|---|---|---|
Access denied for user 'gebruikersnaam'@'localhost' (using password: YES) | De combinatie van gebruikersnaam en wachtwoord wordt geweigerd, of de gebruiker mag niet vanaf deze host verbinden. | Het wachtwoord in het paneel opnieuw instellen en in DB_PASSWORD zetten; DB_USER controleren. |
Access denied for user 'gebruikersnaam'@'localhost' to database 'naam_van_de_database' | De gebruiker kan verbinden, maar heeft geen rechten op deze database. | De gebruiker in het paneel van de hostingprovider aan de database koppelen, met alle rechten. |
Unknown database 'naam_van_de_database' | De verbinding werkt, maar geen enkele database heeft deze naam. | DB_NAME verbeteren, voorvoegsel inbegrepen; controleren of de database nog bestaat. |
Too many connections | De server heeft zijn maximale aantal gelijktijdige verbindingen bereikt. | Zie de sectie over een fout die komt en gaat. |
Connection refused of No such file or directory (code 2002 vanuit PHP), Can't connect to MySQL server (via de opdrachtregel) | Geen enkele server antwoordt op dit adres: de server ligt eruit, of DB_HOST is onjuist. | DB_HOST controleren in het paneel; anders de hostingprovider waarschuwen. |
Verbinding gelukt | De gegevens kloppen. | Kijk naar de database zelf: volgende sectie. |
Kloppen de gegevens maar zijn er tabellen beschadigd, dan toont de publieke site dezelfde verbindingsfout, en het dashboard een preciezere melding: “Eén of meer databasetabellen zijn niet beschikbaar. De database moet waarschijnlijk worden gerepareerd.” WordPress levert daarvoor een tool. Voeg deze regel toe aan wp-config.php:
define( 'WP_ALLOW_REPAIR', true );
Open daarna https://www.uw-site.com/wp-admin/maint/repair.php en start “Database repareren”. Verwijder de regel zodra de reparatie klaar is: zolang hij er staat, is deze pagina voor iedereen bereikbaar, zonder in te loggen.
Maak vóór elke reparatie een export van de database (wp db export, of de export van phpMyAdmin). Mislukt de reparatie, dan kan de hostingprovider de database uit zijn back-ups terugzetten.
Een fout die op bepaalde uren verschijnt en vanzelf weer verdwijnt, wijst eerder op een overbelaste server dan op een verkeerde instelling. De meest voorkomende oorzaken:
wp-login.php of xmlrpc.php, zichtbaar in de toegangslogs van de hostingprovider.De oplossingen: misbruikende inlogpogingen blokkeren, een paginacache installeren, xmlrpc.php uitschakelen als geen enkele toepassing het gebruikt, en de hostingprovider om de logbestanden van de periode met de fout vragen.
Met Serenity by Simafri maken wij uw professionele website, hosten hem, beveiligen hem en houden hem up-to-date. U schrijft ons, wij zorgen voor alles. Domeinnaam en zakelijke e-mail inbegrepen.
Meestal niet. De melding zegt dat WordPress geen verbinding kon maken met de database, niet dat de database verdwenen is. Toont phpMyAdmin de tabellen van de site nog, dan staan uw pagina’s, berichten en instellingen er nog.
Omdat de nieuwe hosting andere databasegegevens gebruikt: naam van de database, gebruiker, wachtwoord en soms het serveradres. Zet de waarden uit het nieuwe paneel in DB_NAME, DB_USER, DB_PASSWORD en DB_HOST in wp-config.php.
Een nieuwe installatie van WordPress verandert de gegevens in wp-config.php en de toestand van de databaseserver niet, en juist die veroorzaken deze melding. Test eerst de gegevens, daarna de server, daarna de integriteit van de tabellen.
Van overbelasting eerder dan van een instelling: te veel gelijktijdige verbindingen, een piek in het verkeer of bots. De toegangslogs en het resourceverbruik in het paneel van de hostingprovider laten zien wat er gebeurde op het moment van de fout.
Simafri
Laten we het over uw website hebben
Vertel ons in een paar woorden over uw project: wij nemen snel contact met u op.
Bedankt! Uw aanvraag is verzonden. We nemen spoedig contact met u op.
Liever per e-mail? Schrijf ons op support@simafri.com.