sql >> Databáze >  >> RDS >> Mysql

Obnovte strukturu tabulky ze souborů frm a ibd

Obnovil jsem tabulku pouze z .frm a .idb soubory.

Získejte dotaz SQL pro vytvoření tabulek

Pokud již znáte schéma svých tabulek, můžete tento krok přeskočit.

  1. Nejprve nainstalujte Utility MySQL .Potom můžete použít mysqlfrm příkaz v příkazovém řádku (cmd).

  2. Za druhé, získejte dotazy SQL z .frm soubory pomocí mysqlfrm příkaz:

    mysqlfrm --diagnostic <path>/example_table.frm
    

Pak můžete získat SQL dotaz k vytvoření stejné strukturované tabulky. Jako toto:

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;

Vytvořte tabulky

Vytvořte tabulku(y) pomocí výše uvedeného SQL dotazu.

Pokud stará data stále existují, možná budete muset nejprve zrušit příslušnou databázi a tabulky. Ujistěte se, že máte zálohu datových souborů.

Obnovte data

Spuštěním tohoto dotazu odstraníte nová data tabulky:

ALTER TABLE example_table DISCARD TABLESPACE;

Tím se odstraní spojení mezi novým .frm a (nový, prázdný) .idb soubor. Odstraňte také .idb soubor ve složce.

Poté vložte starý .idb soubor do nové složky, např.:

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

Ujistěte se, že .ibd soubory lze číst pomocí mysql uživatel, např. spuštěním chown -R mysql:mysql *.ibd ve složce.

Chcete-li importovat stará data, spusťte tento dotaz:

ALTER TABLE example_table IMPORT TABLESPACE;

Tím se importují data z .idb soubor a obnoví data.



  1. MySQL uděluje databázi všechna oprávnění kromě jedné tabulky

  2. Porovnání řetězců s rozlišením velkých a malých písmen

  3. Nasazení zabezpečené multicloudové replikace MySQL na AWS a GCP s VPN

  4. Jak nainstalovat MySQL na Debian 7