Felmeddelandet "Error establishing database connection" är ett av de vanligaste och mest frustrerande problemen i WordPress. Det uppstår när din WordPress-installation inte kan ansluta till MySQL-databasen där allt innehåll lagras. Orsaken kan vara allt från felaktiga inloggningsuppgifter i wp-config.php till att MySQL-servern har stoppats eller att databasen är korrupt. I denna guide går vi igenom de åtta viktigaste stegen för att diagnostisera och lösa wordpress databasfel systematiskt, oavsett om du använder cPanel, WHM eller SSH-åtkomst.
Förstå felet och förbered felsökning
Innan du börjar ändra filer är det viktigt att förstå att detta fel betyder att WordPress inte kan etablera kontakt med MySQL-databasen. Det kan bero på:
- Felaktiga databasuppgifter (användarnamn, lösenord, värdnamn)
- MySQL-servern är nere eller överbelastad
- Korrupta databastabeller
- Saknade databasprivilegier för WordPress-användaren
- Nätverksproblem mellan webbserver och databasserver
Se till att du har FTP- eller SSH-åtkomst till din server samt inloggning till cPanel eller WHM innan du fortsätter.
Steg-för-steg-lösning
-
Steg 1: Kontrollera att MySQL-servern körs
Det första du ska kontrollera är om MySQL-tjänsten faktiskt är igång på servern. Logga in i WHM (Web Host Manager) om du har VPS eller dedikerad server.
I WHM, navigera till Service Configuration → Service Manager och kontrollera att "mysql" eller "mariadb" är markerad som aktiverad och körs. Om tjänsten är stoppad, aktivera den och starta om.
Om du har SSH-åtkomst kan du kontrollera status med:
systemctl status mysqleller för MariaDB:
systemctl status mariadbOm tjänsten är stoppad, starta den med:
systemctl start mysqlTesta sedan din WordPress-sajt igen. Om felet kvarstår, fortsätt till nästa steg.
-
Steg 2: Verifiera databasuppgifter i wp-config.php
Den vanligaste orsaken till mysql connection error wordpress är felaktiga uppgifter i konfigurationsfilen. Anslut via FTP eller SSH och öppna filen
wp-config.phpsom ligger i WordPress rotkatalog.Leta upp följande rader och kontrollera att värdena stämmer:
define('DB_NAME', 'databasnamn'); define('DB_USER', 'databasanvändare'); define('DB_PASSWORD', 'lösenord'); define('DB_HOST', 'localhost');Vanliga misstag:
- DB_HOST är oftast "localhost", men vissa webbhotell använder "127.0.0.1" eller en specifik IP-adress/värdnamn
- DB_USER och DB_NAME har ofta ett prefix (t.ex. "cpanelanvändare_dbnamn")
- Lösenordet kan innehålla specialtecken som måste vara exakt rätt
Logga in i cPanel → MySQL Databases för att verifiera det korrekta databasnamnet och användarnamnet. Om du är osäker på lösenordet, återställ det via cPanel och uppdatera wp-config.php.
-
Steg 3: Testa databasanslutning via phpMyAdmin
För att bekräfta att uppgifterna är korrekta, testa att ansluta direkt till databasen. Logga in i cPanel och öppna phpMyAdmin.
Om du kan se din WordPress-databas i vänstermenyn och öppna tabeller som wp_posts och wp_options, betyder det att databasuppgifterna i sig fungerar. Problemet kan då ligga i wp-config.php-syntaxen eller DB_HOST-värdet.
Om du inte kan logga in i phpMyAdmin med samma uppgifter, är användarnamnet eller lösenordet fel. Återställ lösenordet via cPanel → MySQL Databases.
-
Steg 4: Kontrollera databasanvändarens behörigheter
Även om användarnamn och lösenord är korrekta kan WordPress-användaren sakna nödvändiga privilegier. I cPanel, gå till MySQL Databases och scrolla ner till sektionen "Add User To Database".
Välj din WordPress-databasanvändare och databas, klicka på "Add". På nästa sida, markera ALL PRIVILEGES och klicka "Make Changes".
Om du använder SSH kan du ge alla privilegier med:
mysql -u root -p GRANT ALL PRIVILEGES ON databasnamn.* TO 'användarnamn'@'localhost'; FLUSH PRIVILEGES; exit;Mer information om att hantera privilegier finns i vår guide om hur man ger alla privilegier till en användare i MySQL med cPanel.
-
Steg 5: Reparera korrupt WordPress-databas
Om tabeller i databasen är korrupta kan WordPress inte ansluta korrekt. WordPress har en inbyggd reparationsfunktion. Öppna
wp-config.phpoch lägg till denna rad precis ovanför kommentaren "That's all, stop editing!":define('WP_ALLOW_REPAIR', true);Spara filen och navigera till:
https://dinwebbplats.se/wp-admin/maint/repair.phpKlicka på "Repair Database" eller "Repair and Optimize Database". När reparationen är klar, ta bort raden från wp-config.php av säkerhetsskäl (annars kan vem som helst köra reparationen).
Alternativt kan du reparera via SSH:
mysqlcheck -u användarnamn -p --auto-repair databasnamnFör mer avancerad databashantering via kommandoraden, se vår guide om hur man importerar och exporterar MySQL-databas via SSH.
-
Steg 6: Kontrollera DB_HOST och portnummer
Om ditt webbhotell använder en separat databasserver kan DB_HOST behöva inkludera ett portnummer. Standardporten för MySQL är 3306. Testa att ändra DB_HOST till:
define('DB_HOST', 'localhost:3306');eller om du fått ett specifikt värdnamn från ditt webbhotell:
define('DB_HOST', 'mysql.dinserver.se:3306');Vissa webbhotell använder Unix-sockets istället. I så fall kan DB_HOST se ut så här:
define('DB_HOST', 'localhost:/var/lib/mysql/mysql.sock');Kontakta ditt webbhotells support för att få rätt DB_HOST-värde om standardinställningarna inte fungerar.
-
Steg 7: Öka MySQL max_connections vid hög belastning
Om din sajt får mycket trafik kan MySQL nå sin gräns för samtidiga anslutningar. Detta orsakar tillfälliga kan inte ansluta databas-fel. Logga in i WHM och gå till SQL Services → MySQL Configuration.
Leta upp
max_connectionsoch öka värdet (standardvärdet är ofta 100-151). Ett värde på 200-300 är lämpligt för de flesta WordPress-sajter med måttlig trafik.Via SSH kan du kontrollera nuvarande värde:
mysql -u root -p -e "SHOW VARIABLES LIKE 'max_connections';"För att ändra det permanent, redigera
/etc/my.cnfoch lägg till under [mysqld]:max_connections = 250Starta om MySQL:
systemctl restart mysqlDu kan också optimera din databas för bättre prestanda med vår guide om hur man optimerar en MySQL-databas med SSH.
-
Steg 8: Kontrollera serverns resurser och loggar
Om inget av ovanstående fungerar kan problemet vara serverrelaterat. Kontrollera MySQL-felloggen för specifika felmeddelanden. I WHM, gå till Service Configuration → Service Status → MySQL Server och klicka på "View Error Log".
Vanliga problem i loggen:
- "Too many connections" – öka max_connections (se steg 7)
- "Out of memory" – servern har slut på RAM, kontakta webbhotellet för uppgradering
- "Table is marked as crashed" – kör reparation (se steg 5)
Via SSH kan du visa de senaste raderna i felloggen:
tail -n 50 /var/lib/mysql/$(hostname).errOm du ser meddelanden om att MySQL kraschar eller startar om upprepade gånger, kan det bero på otillräckliga serverresurser eller en felkonfigurerad my.cnf. Kontakta ditt webbhotells tekniska support med information från loggen.
Vanliga problem och ytterligare felsökning
Om du fortfarande ser error establishing database connection efter att ha följt alla steg, här är några ytterligare saker att kontrollera:
- Brandväggsregler – om din databas ligger på en separat server kan brandväggen blockera anslutningen. Kontrollera att port 3306 är öppen mellan webbservern och databasservern.
- SELinux-inställningar – på CentOS/RHEL-servrar kan SELinux blockera MySQL-anslutningar. Testa att tillfälligt sätta SELinux i permissive mode:
setenforce 0 - Fel databasprefixet – om du har bytt databas eller återställt från backup, kontrollera att
$table_prefixi wp-config.php matchar prefixet i databasen (vanligtvis "wp_"). - Korrupta WordPress-filer – i sällsynta fall kan wp-db.php eller andra core-filer vara korrupta. Ladda ner en ny kopia av WordPress och ersätt wp-includes och wp-admin-mapparna (behåll wp-config.php och wp-content).
Om du arbetar med MariaDB istället för MySQL kan du behöva använda specifika kommandon. Läs vår guide om steg för att visa MariaDB-databaser i SSH för mer information.
När du ska kontakta webbhotellet
Om du har provat alla steg ovan utan framgång är det dags att kontakta ditt webbhotells support. Innan du gör det, samla följande information:
- Exakt felmeddelande (ta en skärmdump)
- Innehållet i din wp-config.php (ta bort lösenordet innan du skickar)
- Relevanta rader från MySQL-felloggen
- Tidpunkt när felet började uppstå
- Om felet är konstant eller intermittent
Supporten kan behöva kontrollera servernivå-inställningar som du inte har åtkomst till, såsom MySQL-konfiguration, diskutrymme eller om IP-adresser har blockerats av säkerhetssystem.
Förebygg framtida databasfel
För att undvika wordpress databasfel i framtiden, följ dessa best practices:
- Regelbundna backuper – säkerhetskopiera både filer och databas dagligen. Använd plugins som UpdraftPlus eller BackupBuddy.
- Övervaka serverprestanda – håll koll på CPU, RAM och diskanvändning för att upptäcka problem innan de påverkar databasen.
- Optimera databasen regelbundet – använd plugins som WP-Optimize för att rensa upp revisions, spam och transients.
- Använd ett CDN och caching – minska belastningen på databasen genom att cacha sidor och servera statiskt innehåll via CDN.
- Håll WordPress och plugins uppdaterade – gamla versioner kan ha buggar som orsakar databaskorruption.
Om du behöver återställa databasåtkomst för en användare, se vår guide om hur man återställer användares databasåtkomst.