sql >> Database teknologi >  >> RDS >> Mysql

Gendan tabelstruktur fra frm- og ibd-filer

Jeg gendannede tabellen kun fra .frm og .idb filer.

Hent SQL-forespørgslen for at oprette tabellerne

Hvis du allerede kender skemaet for dine tabeller, kan du springe dette trin over.

  1. Installer først MySQL Utilities .Så kan du bruge mysqlfrm kommando i kommandoprompt (cmd).

  2. For det andet skal du hente SQL-forespørgslerne fra .frm filer ved hjælp af mysqlfrm kommando:

    mysqlfrm --diagnostic <path>/example_table.frm
    

Så kan du få SQL-forespørgslen til at oprette samme strukturerede tabel. Sådan:

CREATE TABLE `example_table` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(150) NOT NULL,
  `photo_url` varchar(150) NOT NULL,
  `password` varchar(600) NOT NULL,
  `active` smallint(6) NOT NULL,
  `plan` int(11) NOT NULL,
PRIMARY KEY `PRIMARY` (`id`)
) ENGINE=InnoDB;

Opret tabellerne

Opret tabellen/tabellerne ved hjælp af ovenstående SQL-forespørgsel.

Hvis de gamle data stadig eksisterer, skal du muligvis slette den respektive database og tabeller først. Sørg for at have en sikkerhedskopi af datafilerne.

Gendan dataene

Kør denne forespørgsel for at fjerne nye tabeldata:

ALTER TABLE example_table DISCARD TABLESPACE;

Dette fjerner forbindelser mellem den nye .frm fil og (ny, tom) .idb fil. Fjern også .idb fil i mappen.

Indsæt derefter den gamle .idb fil i den nye mappe, f.eks.:

cp backup/example_table.ibd <path>/example_table.idb

Sørg for, at .ibd filer kan læses af mysql bruger, f.eks. ved at køre chown -R mysql:mysql *.ibd i mappen.

Kør denne forespørgsel for at importere gamle data:

ALTER TABLE example_table IMPORT TABLESPACE;

Dette importerer data fra .idb fil og vil gendanne dataene.



  1. Lokale og globale midlertidige tabeller i SQL Server

  2. Oracle SQL-timers forskel mellem datoer i TT:MM:SS

  3. Datavisualisering i Microsoft Power BI

  4. Opretholdelse af et grupperet kørende MAX (eller MIN)