sql >> Database >  >> RDS >> Mysql

Hoe MySQL-database te herstellen van .myd-, .myi-, .frm-bestanden

Als dit MyISAM-tabellen zijn, zet u de .FRM-, .MYD- en .MYI-bestanden in een databasedirectory (bijv. /var/lib/mysql/dbname ) zal die tabel beschikbaar maken. Het hoeft niet dezelfde database te zijn als waar ze vandaan kwamen, dezelfde server, dezelfde MySQL-versie of dezelfde architectuur. Mogelijk moet u ook het eigendom van de map wijzigen (bijv. chown -R mysql:mysql /var/lib/mysql/dbname )

Houd er rekening mee dat machtigingen (GRANT , etc.) maken deel uit van de mysql databank. Ze worden dus niet samen met de tafels gerestaureerd; het kan zijn dat u de juiste GRANT . moet uitvoeren instructies om gebruikers aan te maken, toegang te geven, enz. (Het herstellen van de mysql database is mogelijk, maar u moet voorzichtig zijn met MySQL-versies en eventuele benodigde uitvoeringen van de mysql_upgrade hulpprogramma.)

Eigenlijk heb je waarschijnlijk alleen de .FRM (tabelstructuur) en .MYD (tabelgegevens) nodig, maar je zult de tabel moeten repareren om de .MYI (indexen) opnieuw op te bouwen.

De enige beperking is dat als je een downgrade uitvoert, je het beste de release-opmerkingen kunt controleren (en waarschijnlijk de reparatietabel kunt uitvoeren). Nieuwere MySQL-versies voegen natuurlijk functies toe.

[Hoewel het duidelijk zou moeten zijn, is de integriteit van relaties tussen die tabellen uw probleem als u tabellen mixt en matcht; MySQL maakt niet uit, maar uw toepassing en uw gebruikers misschien wel. Deze methode werkt ook helemaal niet voor InnoDB-tabellen. Alleen MyISAM, maar gezien de bestanden die je hebt, heb je MyISAM]



  1. SQL Server 2008 Verticale gegevens naar Horizontaal

  2. Missiekritieke toegangstoepassingen identificeren en beheren tijdens een ontwikkelingsproject

  3. Waarom de Optimizer geen kennis van bufferpools gebruikt?

  4. T-SQL Hoe tabellen dynamisch te creëren in opgeslagen procedures?