Oavsett vilken enhet eller programvara som du använder finns det alltid en risk för att data skadas. När det gäller databaser betyder ”skadad” att viss eller all information i tabellerna kan vara omöjlig att läsa eller komma åt. Det finns många anledningar till att detta kan hända, och det är viktigt att veta hur man åtgärdar det.

Lyckligtvis är det lättare än du kanske tror att reparera en MySQL-tabell. Det finns flera sätt att göra detta på. Du kan exempelvis använda inbyggda MySQL-reparationsverktyg och programvara för databashantering. Det är väldigt troligt att du kommer att kunna återställa alla dina data.

I den här artikeln talar vi om hur databas-korruption uppstår och förklarar hur du kontrollerar dina tabeller för fel. Vi går sedan igenom fyra metoder för att reparera MySQL-databaser så att du är förberedd för alla situationer. Nu sätter vi igång!

Vad gör att en MySQL-tabell blir skadad?

Datakorruption avser fel i data som kan uppstå under exempelvis skrivning, läsning, lagring eller bearbetning. I MySQL-tabeller (och MongoDB- eller MariaDB-tabeller) kan korruption orsaka dataförlust, hindra databasens prestanda eller till och med göra tabellerna oläsbara.

En tabell är med andra ord skadad när det finns ett problem med datans integritet eller när databasprogrammet inte kan tolka datan.

Det finns många anledningar till att en MySQL-tabell kan bli skadad, exempelvis:

  • Hårdvaruproblem. Felaktiga hårdvarukomponenter, som hårddiskar eller minne, kan införa fel i dina data.
  • Programvarufel. Buggar i MySQL eller operativsystemet kan leda till data-korruption, särskilt om de orsakar krascher eller ett oväntat beteende.
  • Strömavbrott. Plötsliga strömavbrott kan avbryta dataskrivningsprocesserna. Som ett resultat så kan det uppstå ofullständiga eller skadade data.
  • Felaktiga avstängningar. Om MySQL eller servern inte stängs av på rätt sätt kan det hända att data inte skrivs till disken på rätt sätt, vilket leder till korruption.
  • Fel i filsystemet. Problem med det underliggande filsystemet kan orsaka data-korruption eller till och med dataförlust.
  • Malware eller hackningsförsök. Skadlig programvara eller obehörig åtkomst kan leda till data-korruption, antingen avsiktligt eller oavsiktligt.

Det bästa sättet att undvika många av dessa problem är att använda en säker hosting-miljö för din databas. Om din hosting-leverantör erbjuder tillgång till hårdvara och prestanda av hög kvalitet är det mindre sannolikt att du får problem med databas-korruption.

Hur kan du kontrollera om en MySQL-tabell innehåller fel?

Om du är orolig för eventuell korruption kan du använda kommandot ”CHECK TABLE” för att kontrollera en databastabell efter fel. Det här kommandot undersöker tabellens struktur och data för att sedan hitta eventuella inkonsekvenser eller skadade data.

Det manuella sättet att göra detta på är att använda terminalen för att köra kommandot CHECK TABLE. För att göra detta måste du öppna MySQL-kommandoraden, ansluta till den databas som innehåller tabellen och köra det här kommandot:

CHECK TABLE table_name;

Ersätt ”table_name” med namnet på den tabell som du vill kontrollera. Kommandot returnerar därefter ett statusmeddelande som anger om tabellen är okej, har varningar eller innehåller fel.

Det finns dock enklare sätt att utföra den här uppgiften. Om du har tillgång till ett databashanterings-verktyg, exempelvis phpMyAdmin, kan du använda detta för att kontrollera tabeller via ett användargränssnitt. Du gör detta genom att komma åt din webbplats databas med phpMyAdmin, välja en databas och välja de tabeller som du vill kontrollera:

Välja databastabeller som ska kontrolleras och repareras
Välja databastabeller som ska kontrolleras och repareras

När du har valt alternativet Kontrollera tabell klickar du på Kör. phpMyAdmin returnerar sedan en ny sida med status-översikter för varje tabell. Om en tabell är oskadad visas ett enkelt OK-meddelande.

Hur lång tid tar det att reparera en MySQL-tabell?

Den tid det tar att reparera en MySQL-tabell beror på flera faktorer. Det handlar exempelvis om tabellens storlek, skadans omfattning och den reparationsmetod som du väljer. I vissa fall kan den här uppgiften bara ta några minuter- I andra fall kan detta vara en tidskrävande process som kräver att du provar flera tillvägagångssätt.

Den mest tidseffektiva lösningen för att reparera en skadad MySQL-tabell är att återställa databasen från en aktuell säkerhetskopia. Detta kan spara tid och arbete jämfört med att reparera tabellen manuellt, särskilt om korruptionen är omfattande eller svår att lösa.

Ett sådant tillvägagångssätt förutsätter dock att du har en tillförlitlig och aktuell säkerhetskopia tillgänglig. I några avsnitt kommer vi att tala om hur du utför en databas-återställning från en säkerhetskopia.

Hur man reparerar MySQL-tabeller (4 beprövade metoder)

I det här avsnittet undersöker vi fyra sätt att reparera en MySQL-tabell. Dessa tekniker är alla relativt enkla, även om du kan behöva prova mer än en av dem tills du hittar en lösning som fungerar för dig.

1. Reparera MySQL-tabeller i phpMyAdmin

phpMyAdmin är ett av de mest populära databashanterings-verktygen på marknaden. De flesta hosting-leverantörer gör det möjligt för dig att använda phpMyAdmin för att komma åt och redigera dina databaser, inklusive Kinsta.

Processen för att komma åt databasen varierar beroende på din hosting-leverantörs kontrollpanel. Om du exempelvis använder MyKinsta väljer du den webbplats som databasen tillhör. Gå sedan till fliken Info och bläddra ner till avsnittet Databasåtkomst.

Databasens användarnamn och lösenord kommer att vara tillgängliga här:

Databasens användarnamn och lösenord i MyKinsta
Databasens användarnamn och lösenord i MyKinsta

Klicka på Öppna phpMyAdmin och använd dina inloggningsuppgifter för att logga in. Välj sedan den skadade databasen. phpMyAdmin listar alla tabeller i den databasen. Du kan antingen välja alla med hjälp av kryssrutorna till vänster eller bara de skadade tabellerna.

När du har valt de tabeller som du vill reparera scrollar du ner och öppnar rullgardinsmenyn Med valda tabeller. Välj alternativet Reparera tabell:

Välj alternativet Reparera tabell
Välj alternativet Reparera tabell

Tänk på att alla databaser inte har stöd för phpMyAdmin’s reparations-funktion. Om din stöder detta kommer du att se ett meddelande om framgång vid sidan av varje tabells namn på nästa sida.

Om du inte är säker på vilka tabeller som behöver repareras återgår du till föregående avsnitt om hur du kontrollerar databaser för korruption. Du kan använda funktionen Kontrollera i phpMyAdmin för att söka efter fel i tabeller och sedan reparera dem.

2. Använd MySQL-kommandoraden

Är du bekväm med att använda kommandoraden och har SSH-åtkomst (Secure Shell) till servern på din webbplats? Då är detta ett annat sätt att reparera en MySQL-tabell. Först måste du få tillgång till MySQL-skalet, som vanligtvis installeras tillsammans med MySQL.

Med MySQL-skalet kan du ansluta till databasen från terminalen. För att göra detta använder du sedan följande kommando:

mysql -u -p

Användarnamnet och lösenordet står för databasens användarnamn och lösenord. I praktiken bör kommandot se ut ungefär så här:

$ mysql -u username1 -p

När du har angett användarnamnet kommer MySQL-skalet att fråga efter lösenordet. Om du lyckas visas MySQL-kommandotolken.

Därefter kan du använda vilket MySQL-kommando som du vill. Det du behöver för att reparera databasen är:

REPAIR TABLE table_name;

Du måste ersätta table_name-platshållaren med namnet på den tabell som du vill reparera. MySQL kommer att försöka reparera tabellen och skalet kommer att visa ett statusmeddelande som visar resultatet av reparations-processen.

I de flesta fall rekommenderar vi att du använder ett grafiskt användargränssnitt eller ett databas-hanteringsverktyg som phpMyAdmin. Men om du är bekväm med att använda kommandoraden och vet namnet på den tabell som du vill reparera fungerar det här tillvägagångssättet lika bra.

3. Återställa databasen från en säkerhetskopia

Om du har en aktuell säkerhetskopia av din databas kan du återställa den för att återställa en skadad tabell. Detta är ofta den snabbaste och mest tillförlitliga metoden för att åtgärda allvarliga korruptions-problem.

Vissa hosting-leverantörer tillhandahåller automatiska säkerhetskopior av hela webbplatsen som inkluderar databasen. Här på Kinsta får du dagliga säkerhetskopior av din webbplats, som du när som helst kan återställa från instrumentpanelen MyKinsta:

Dagliga säkerhetskopior i MyKinsta
Dagliga säkerhetskopior i MyKinsta

Vi erbjuder dessutom databashosting-tjänster, vilket är perfekt om du inte behöver hosta en fullständig webbplats. Våra miljöer för databashosting är utformade för att skydda mot datakorruption på grund av hårdvarufel. Databaserna säkerhetskopieras dessutom automatiskt. Du kan när som helst återställa din databas till en tidigare säkerhetskopia.

Det är dock inte alla hosting-leverantörer som erbjuder automatiska säkerhetskopior. Om din inte gör detta måste du säkerhetskopiera webbplatsen och databasen manuellt. Om du använder WordPress kan du alternativt förlita dig på säkerhetskopierings-plugins.

4. Använd tredjeparts-verktyg för reparation av databaser

Det finns flera verktyg från tredje part som du kan använda för att reparera en MySQL-tabell. Du kan exempelvis välja Stellar Repair for MySQL och SysTools SQL Recovery. Dessa verktyg kan hjälpa dig att återställa data från korrupta tabeller och sedan reparera problem som kan vara svåra att lösa med hjälp av inbyggda MySQL-verktyg.

Beroende på vilket verktyg som du använder kan processen vara så enkel som att exportera den skadade databasen i en .xml-fil (vilket du kan göra med phpMyAdmin). Du kan sedan analysera den med hjälp av reparations-applikationen.

Programvaran ska kunna upptäcka datakorruptionsproblem och reparera dem automatiskt. När reparationen är klar kan du använda importfunktionen i phpMyAdmin (eller vilket databas-hanteringsverktyg du än använder) för att skriva över den skadade informationen.

Tänk på att din upplevelse kan variera beroende på vilket verktyg som du använder. Vissa programvaror för reparation av databaser, exempelvis SysTools SQL Recovery, kräver att du köper en licens. Att köpa dyr programvara för att reparera databasen är bara värt det om informationen är kritisk och alla andra reparationsmetoder redan har misslyckats.

Sammanfattning

En skadad databas kan låta som ett olösligt problem, men det är ofta lätt att åtgärda. Med tanke på hur populärt MySQL är bör det inte komma som någon överraskning att det finns många sätt att reparera skadade MySQL-databaser. I de flesta fall behöver du inte ens ha någon större förtrogenhet med hur databaser fungerar för att kunna reparera dem.

Om du har tillgång till phpMyAdmin så gör den programvaran det enkelt att kontrollera databastabeller för fel och reparera dem. Du kan dessutom instruera MySQL att reparera vilken tabell som helst från kommandoraden om du är bekväm med det systemet. Om du har tillgång till säkerhetskopior av databasen är det dock oftast enklast att återställa dem för att reparera skadade tabeller.

Har du några andra frågor om hur du använder MySQL för att reparera en tabell? Låt oss prata om dem i kommentarsfältet nedan!