Din webbplats visar en enda rad: ”Ett fel uppstod vid anslutning till databasen”. WordPress kunde inte öppna databasen som rymmer dina sidor, inställningar och konton. Ditt innehåll är oftast intakt: den här guiden visar hur du tar reda på vilken av de fyra möjliga orsakerna det gäller, och hur du åtgärdar den.
wp-config.php. Ditt innehåll är oftast intakt.DB_NAME, DB_USER, DB_PASSWORD och DB_HOST i wp-config.php med dem i webbhotellets kontrollpanel.För varje sida den levererar öppnar WordPress en anslutning till sin MySQL- eller MariaDB-databas med fyra värden som står i wp-config.php, i webbplatsens rotmapp:
define( 'DB_NAME', 'databasnamn' );
define( 'DB_USER', 'anvandarnamn' );
define( 'DB_PASSWORD', 'losenord' );
define( 'DB_HOST', 'localhost' );
”Ett fel uppstod vid anslutning till databasen” betyder att den anslutningen misslyckades. Fyra orsaker ger det: uppgifter som inte längre stämmer, en databasserver som ligger nere eller inte går att nå, en överbelastad server eller en skadad databas. Avsnitten nedan går igenom dem, från den enklaste att kontrollera till den ovanligaste.
Ligger felet hos servern, öppna ett ärende hos webbhotellet och ange när felet började och det exakta meddelandet. Under tiden finns inget att ändra på webbplatsen.
Det är den vanligaste orsaken efter en flytt av webbplatsen, ett byte av databaslösenordet i kontrollpanelen eller en återställning från säkerhetskopia. Jämför de fyra värdena i wp-config.php med databasavsnittet i webbhotellets kontrollpanel:
DB_NAME och DB_USER: många webbhotell sätter kontonamnet som prefix (konto_wordpress). Prefixet är en del av namnet.DB_PASSWORD: är du osäker, sätt ett nytt lösenord för användaren i kontrollpanelen och kopiera in det i filen.DB_HOST: localhost hos många webbhotell, men inte alla. Vissa anger ett servernamn eller en adress, ibland följd av en port (:3306). Det exakta värdet står i kontrollpanelen.Ett lösenord som innehåller ett enkelt citattecken (') bryter PHP-strängen som omger det i wp-config.php. Sätt ett omvänt snedstreck framför det (\'), eller välj ett lösenord utan enkelt citattecken.
WordPress visar ett allmänt meddelande. MySQL säger däremot exakt vad som är fel. Två sätt att fråga, med värdena från wp-config.php:
mysql -h localhost -u anvandarnamn -p databasnamn
Med WP-CLI läser wp db check direkt wp-config.php och kontrollerar tabellerna med de uppgifterna.
Ladda upp den här filen till webbplatsens rotmapp under ett namn som är svårt att gissa, öppna den i webbläsaren och radera den direkt efteråt: den innehåller databasens lösenord.
<?php
mysqli_report(MYSQLI_REPORT_OFF);
$link = @mysqli_connect('localhost', 'anvandarnamn', 'losenord', 'databasnamn');
echo $link ? 'Anslutning OK' : 'Misslyckades: ' . mysqli_connect_error();
Den första raden spelar roll: sedan PHP 8.1 kastar en misslyckad anslutning som standard ett undantag, och sidan skulle förbli tom i stället för att visa MySQL:s meddelande.
| MySQL svarar | Orsaken | Åtgärden |
|---|---|---|
Access denied for user 'anvandarnamn'@'localhost' (using password: YES) | Paret användarnamn och lösenord avvisas, eller användaren får inte ansluta från den här värden. | Återställ lösenordet i kontrollpanelen och kopiera in det i DB_PASSWORD; kontrollera DB_USER. |
Access denied for user 'anvandarnamn'@'localhost' to database 'databasnamn' | Användaren kan ansluta men har inga rättigheter på den här databasen. | Koppla användaren till databasen i webbhotellets kontrollpanel, med alla behörigheter. |
Unknown database 'databasnamn' | Anslutningen fungerar, men ingen databas har det namnet. | Rätta DB_NAME, prefixet inräknat; kontrollera att databasen fortfarande finns. |
Too many connections | Servern har nått sitt högsta antal samtidiga anslutningar. | Se avsnittet om fel som kommer och går. |
Connection refused eller No such file or directory (kod 2002 från PHP), Can't connect to MySQL server (kommandoraden) | Ingen server svarar på den adressen: servern ligger nere, eller DB_HOST är fel. | Kontrollera DB_HOST i kontrollpanelen; annars, kontakta ditt webbhotell. |
Anslutning OK | Uppgifterna stämmer. | Titta på själva databasen: nästa avsnitt. |
När uppgifterna stämmer men tabeller är skadade visar den publika webbplatsen samma anslutningsfel, och adminpanelen ett mer exakt: ”En eller flera databastabeller är otillgängliga. Databasen kan behöva repareras.” WordPress har ett verktyg för detta. Lägg till den här raden i wp-config.php:
define( 'WP_ALLOW_REPAIR', true );
Öppna sedan https://www.din-webbplats.com/wp-admin/maint/repair.php och kör ”Reparera databas”. Ta bort raden så snart reparationen är klar: så länge den finns kan vem som helst nå sidan, utan att logga in.
Exportera databasen före varje reparation (wp db export, eller fliken Exportera i phpMyAdmin). Misslyckas reparationen kan ditt webbhotell återställa databasen från sina säkerhetskopior.
Ett fel som visar sig vid vissa tider och sedan försvinner av sig självt pekar på en överbelastad server snarare än en felaktig inställning. De vanliga orsakerna:
wp-login.php eller xmlrpc.php, synliga i webbhotellets åtkomstloggar.Åtgärderna: blockera missbrukande inloggningsförsök, lägg till sidcache, stäng av xmlrpc.php om inget program använder det, och be ditt webbhotell om loggarna för tidpunkten då felet inträffade.
Med Serenity by Simafri skapar vi din professionella webbplats, driftar den, säkrar den och håller den uppdaterad. Du skriver till oss, vi tar hand om allt. Domännamn och företagsmejl ingår.
Oftast inte. Meddelandet säger att WordPress inte kunde ansluta till databasen, inte att databasen är borta. Visar phpMyAdmin fortfarande webbplatsens tabeller finns dina sidor, inlägg och inställningar kvar.
Därför att det nya webbhotellet använder andra databasuppgifter: databasnamn, användare, lösenord och ibland serveradress. Kopiera värdena från den nya kontrollpanelen till DB_NAME, DB_USER, DB_PASSWORD och DB_HOST i wp-config.php.
En ominstallation av WordPress ändrar varken uppgifterna i wp-config.php eller databasserverns tillstånd, och det är dem som ger det här meddelandet. Testa först uppgifterna, sedan servern och därefter tabellernas skick.
Från överbelastning snarare än en inställning: för många samtidiga anslutningar, en trafiktopp eller robotar. Åtkomstloggarna och resursförbrukningen i webbhotellets kontrollpanel visar vad som pågick när felet inträffade.
Simafri
Låt oss prata om din webbplats
Berätta om ditt projekt med några ord: vi återkommer snabbt.
Tack! Din förfrågan har skickats. Vi återkommer till dig inom kort.
Föredrar du e-post? Skriv till oss på support@simafri.com.