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

Sådan gendannes MySQL-database fra .myd-, .myi-, .frm-filer

Hvis disse er MyISAM-tabeller, skal .FRM-, .MYD- og .MYI-filerne indsættes i en databasemappe (f.eks. /var/lib/mysql/dbname ) vil gøre denne tabel tilgængelig. Det behøver ikke at være den samme database, som de kom fra, den samme server, den samme MySQL-version eller den samme arkitektur. Du skal muligvis også ændre ejerskab af mappen (f.eks. chown -R mysql:mysql /var/lib/mysql/dbname )

Bemærk, at tilladelser (GRANT osv.) er en del af mysql database. Så de vil ikke blive restaureret sammen med bordene; du skal muligvis køre den relevante GRANT sætninger for at oprette brugere, give adgang osv. (Gendannelse af mysql database er mulig, men du skal være forsigtig med MySQL-versioner og eventuelle nødvendige kørsler af mysql_upgrade hjælpeprogram.)

Faktisk har du sandsynligvis bare brug for .FRM (tabelstruktur) og .MYD (tabeldata), men du bliver nødt til at reparere tabellen for at genopbygge .MYI (indekser).

Den eneste begrænsning er, at hvis du nedgraderer, vil du bedst tjekke udgivelsesbemærkningerne (og sandsynligvis køre reparationstabel). Nyere MySQL-versioner tilføjer naturligvis funktioner.

[Selvom det burde være indlysende, hvis du blander og matcher tabeller, er integriteten af ​​relationerne mellem disse tabeller dit problem; MySQL er ligeglad, men din applikation og dine brugere kan. Desuden virker denne metode slet ikke for InnoDB-tabeller. Kun MyISAM, men i betragtning af de filer du har, har du MyISAM]



  1. hvordan kan man sammenkæde mere end to kolonner i plsql-udvikler?

  2. oracle diff:hvordan man sammenligner to tabeller?

  3. Forstå Lob-segmenter (SYS_LOB) i Oracle?

  4. Sådan får du vist aktuelle forbindelser i MySQL Workbench ved hjælp af GUI