MySQL

Återställa en MySQL databas från .frm filer

Nyligen kraschade en server för mig, oturligt nog så var det databasservern som gav upp. Och backupen var inte användbar.

Som tur var så fungerade fortfarande hårddisken. Så här gick jag tillväga för att kunna rädda datan och återskapa den.

 

Först och främst detta måste du kunna rädda:

  • ibdata1
  • ib_logfile0
  • ib_logfile1
  • databasmappen med alla .frm filer

I mitt fall så är min desktopmiljö windows 7 under NTFS och filerna jag behövde komma åt låg på Ubuntu, ext4. Windows klarar inte av att läsa ext filsystemet så man måste ladda ner ett program för att få åtkomst. Jag valde DiskInternals Linux Reader, ladda ner här.

Starta programmet välj hårddisken med dina databaser och bläddra dig fram till ”/var/lib/mysql”. Kopiera filerna jag nämnde ovan. Högerklicka och välj ”save”. Spara filerna någonstans på din dator.

När dom är överförda behöver du en testmiljö för att återskapa allt på. Något du inte behöver oroa dig för om det skulle gå fel.

Jag valde en virtuel miljö med Ubuntu Server 12.10 och VirtualBox.

Installera Ubuntu i din virtuella miljö och installera LAMP, Apache, MySQL och PHP och phpMyAdmin.Uppdatera allt genom sudo apt-get update && apt-get upgrade

Navigera dig fram till ”/var/lib/mysql” för att komma åt mappen ”mysql” måste du vara root eller den användaren som äger filerna. Lös detta genom att skriva sudo -i

Kopiera över följande (skriv över dom gamla filerna:

  • ibdata1
  • ib_logfile0
  • ib_logfile1
  • din databas mapp med .frm filerna

Var nog med att alla filerna får rätt ägare och ägaregrupp. Vanligtvis är ägaren ”mysql” och gruppen ”root”.

Jag tar för givet att du redan installerat phpMyAdmin, logga in på din tillfälliga phpMyAdmin installation. Nu ska du kunna se din gamla databas. Gå in i den och exportera över den i en .sql fil till din dator.

Nu är du redo för att kunna återskapa din databas i din nya maskin. Om du stöter på problem är det ofta pga att du inte fått rättigheterna för dina filer att stämma överens.