Recuperéieren MySQL Dëscher wou nëmmen d'.frm an .ibd Fichieren disponibel sinn

wéi ze léisen “MySQL Feeler #1146 - Table net existéieren” ëmmer duerch Fichieren Plënneren .idb (InnoDB) direkt tëscht Telefonsbicher (tablespace).

logo_mysql

Problem

Vill vun de Problemer hu mir sinn Problemer schafe mir. Ech hat preparéieren just eng Websäit benotzt Roth Deputéierten an geduecht: esou gesinn, wéi dës Wierker am PHP 7? Ok, wéi meng WampServer benotzt PHP 5.6, duerno hat ech bis “glécklech” Iddi ze Upgrade vun der WampServer 2.5 (Apache--2.4.9, MySQL-5.6.17, Php5.5.12) fir WampServer 3.0.6 (Apache2.4.23, Mysql5.7.14, Php5.6.25 E PHP 7.0.10).

kloer, Ech ugefangen vun Backupsatellit, mee meng grouss misstep war wielen net de SQL esou Site ze exportéieren, amplaz, just gemaach eng Kopie vun der MySQL Fichieren (MySQL / Donnéeën) an Applikatioun (www / Site). Ech war zouversiichtlech et géingen, wéi virun.

Nom neien WampServer mat PHP installéiert 7, Ech no der MySQL Backupsatellit Fichieren an der Applikatioun do zréck, nëmmen wann ech war Testen de Browser, net wossten Site, mä de geschter Installatioun Écran wéi wann se sech eng nei Websäit. .Am! Open PHPMyAdmin ze gesinn, wann d'Datebank war Rei a gesinn, datt, trotz der Datebank opgezielt ginn, wann op den Dësch geklickt d'Daten ze Vue wossten dëse Feeler Message:

  MySQL Feeler #1146 - Table <table_name> gëtt et net

Ech hunn schonn Recherche an ech entdeckt, datt Dir nëmmen direkt d'Fichier'en kopéieren oder réckelen kënnen an en anert MySQL MySQL directory wann de Fichieren der Typ MyISAM sinn, déi mat Extensioun .frm .MYD .MYI. Ech weess net wierklech wat ass geschitt, mee meng Datebank wossten wéi InnoDB (.frm E .idb). leider, eréischt no der Manifestatioun de MySQL Dokumentatioun seng Chancë schonn ermëttelt:

  Dir kënnt net fräi réckelen .ibd Fichieren tëscht Datebank Telefonsbicher als Dir kënnt mat MyISAM Dësch Fichieren. 
  Den Dësch Definitioun am InnoDB gedeelt tablespace gespäichert ëmfaasst der Datebank Numm. 
  D'Transaktioun IDen an aloggen Haaptrei Nummeren och an der tablespace Dateie gespäichert ënnerscheeden tëschent Datenbanken.

Léisung

Ech krut e puer einfache Léisungen ze maachen, mee ech wäert beschreiwen hei der een dat wierklech fir mech geschafft, obwuel et schéngt wäit méi komplex, am Post fonnt “Staatsfinanzen Dësch(s) an MySQL Datebank wou frm oder ibd Fichieren sinn nëmmen sinn“.

virun, Ee, déi Aart a Weis vu Wëssen, et ass derwäert un dass InnoDB Verglach zu, MySQL hält seng Struktur an .frm Fichieren an Daten zu .ibd. genuch Theorie, léisst kréien erof ze!

Schrëtt 1: Re-schafen der Struktur vun .frm

wéi ech gesot, .frm enthält d'Struktur vun engem Dësch. Éischt musse mir dass Struktur ze recuperéieren an dann no populär Donnéeën. Dir kënnt se do 3 Verschidde Methoden beschriwwen ënnert, mä virun, loosse mir soen Iech eppes iwwer de “MySQL Etablissementer”.

MySQL Etablissementer | mysqlfrm

Wann Dir wëlles net de proposéiert Method ze benotzen 1 (online) dann braucht Dir d'Instrument ze benotzen “mysqlfrm” gëtt vun “MySQL Etablissementer“.

Dëst Instrument wäert d'Donnéeën Struktur Extrait an der SQL Schrëft fir Dësch Kreatioun Generéiere. fir dës, download “MySQL Etablissementer” (algo Swärdby MySQL-Etablissementer-1.6.4-winx64.msi) an Installatioun ass.

Open oder erweidert (Kommando / VUN) a benotzen CD Kommando zu der Default Installatioun Dossier réckelen (eppes wéi C:\Programm Dateien MySQL MySQL Etablissementer 1.6\). Bedenkt datt bannent datt Dossier ass de Programm mysqlfrm.exe.

  CD "C:\Programm Dateien  MySQL  MySQL Etablissementer 1,6"

Wielt nëmmen ee vun de Methoden Kraaft ënnert d'Struktur vun engem Dësch am .frm Texter ze Extrait:

1Method Nr | online

1. Besicht de Site Majo://recovery.twindb.com/;
2. Klickt Menu Nr “recuperéieren Structure” an dann zu “aus .frm Fichier“;
3. Klickt de Knäppchen “Browser…” a wielt Är .frm Fichier; E
4. Klickt de Knäppchen “Eroplueden” an Dësch Kreatioun Schrëft schéngt op den Ecran.

Dir kënnt op eemol MÉI .frm schécken engem eenzege Schrëft mat all Dëscher schafen. Just zu Loosst Iech eng .zip mat all sengen .frm schafen ier “Browser / Eroplueden”.

2Method Nr | Hëllef –Diagnostice

/* Beispill Allgemeng */
   mysqlfrm -diagnostic "<Quell / Wee>/mytable.frm" > "<Destinatioun / Wee / recovered_mytable.sql>"
 
/* Beispill Praxis mat geschter Dësch wp_posts.frm */
   mysqlfrm --Diagnostice "C:\wamp  bin  MySQL  mysql5.6.17  Daten  meubanco  wp_posts.frm" > "C:\recovered_wp_posts.sql"

3Method Nr | Hëllef –Server

/* Beispill Allgemeng */
  mysqlfrm -server=root:mypassword@localhost -port=3311 "<Quell / Wee>/mytable.frm" > "<Destinatioun / Wee>/recovered_mytable.sql"
 
/* Beispill Praxis mat geschter Dësch wp_posts.frm */
  mysqlfrm --Server=root@localhost --port=3307 ""C:\wamp  bin MySQL\mysql5.6.17\data\meubanco\wp_posts.frm" > "C:\recovered_wp_posts.SQL"

benotzen d'MySQL port net! Wielt all aner sinn. Bedenkt datt d'Kommando der Wasserstoff zu engem .sql Fichier Viruleedungen déi op der spezifizéierter Wee gerett ass (kee Fall, C:).

Schrëtt 2: Re-schafen den Dësch an Ärer Datebank

An eng nei Datebank, en Dësch mat der vun Step generéiert Schrëft schafen 1. Ech installéiert perséinlech eng propper Versioun vun WampServer a benotzt PHPMyAdmin (http://localhost / phpmyadmin /) der Datebank an Import der SQL Schrëft ze schafen an Schrëtt hunn 1 (recovered_wp_posts.sql). Dëst Schrëft wäert schafen 2 Fichier'en am Dossier vun Ärer MySQL Datebank:

  SUA_TABELA.frm
  SUA_TABELA.idb

A mengem Fall, dës Fichieren goufen ugeluecht an C:\wamp64 bin MySQL mysql5.7.14 Daten <meubanco>. an anere Wierder, kucken fir Är MySQL Installatioun an drun, dass d'directory Donnéeën et gëtt eng Datebank an déi zwee Fichier'en ernimmt ginn.

Schrëtt 3: Ewechzehuelen déi nei .idb Fichier

Fir ewechzehuelen déi nei .idb Fichier, lafen déi folgend SQL Kommando:

/* Beispill Allgemeng */
  ALTER TABLE mytable sou TABLESPACE;
 
/* Beispill Praxis mat geschter Dësch wp_posts */
  ALTER TABLE wp_posts sou TABLESPACE;

Dëst Kommando verschwënnt de Lien tëschent den Dësch an den Dësch Plaz (Wou si kierperlech der Datebank Dateie gespäichert), an ewechzehuelen der Datei .idb.

Schrëtt 4: Kopie déi al .idb Fichier

D'Original Datei .idb (déi enthält Donnéeën) Dir musst der Plaz vun .idb kopéiert gin déi am Step geläscht war 3. Benotzen Ctrl + C an Ctrl + V oder souguer de Kommando Linn ëmbréngen.

Schrëtt 5: Reactivate den Dësch

D'gebrach Link zu Step 3 Dir musst mat der folgender Kommando restauréiert ginn:

/* Beispill Allgemeng */
  ALTER TABLE mytable Import TABLESPACE;
 
/* Beispill Praxis mat geschter Dësch wp_posts */
  ALTER TABLE wp_posts Import TABLESPACE;

Maach der keng Suergen, wann Dir e puer Warnungen kréien, Ee, kann allgemeng Decompte ginn dësen Fehler weist:

  #1808 - Schema net fonnt (Dësch huet ROW_TYPE_DYNAMIC hannertenee Format, .ibd Fichier huet ROW_TYPE_COMPACT hannertenee Format.)

an dësem Fall, dat geschitt as wéinst de verschiddene Manéier dass mysql5.7.14 (NEW) schaaft d'Default Dësch a Relatioun zu der MySQL-6.5.17 (AAL), Sem o ROW_FORMAT = kompakt.

dann, wann Dir MySQL benotzt> = der mysql5.7.14, all iech do brauchen ass ROW_FORMAT = kompakt an Dësch Kreatioun Definitioun Foto.

  Schafen TABLE `wp_posts` (. . .) schlemmen=InnoDB ROW_FORMAT=kompakt

anere Feeler

Just fir de Rekord, ier am .frm Daten Reduktioun kréien, Ech hat e puer Feeler:

  # Source op localhost: ... verbonne.
  # Ab der spawned Server op Hafen 3304 ... Feeler Versuch ze dunn spawned Server ophalen.  Prozess id = 6648.
  Feeler: Iwwerall Server Operatioun dunn. Klon Server Feeler: Knapp mat ze kommunizéieren nei Beispill. Prozess ID = 6648.. bis depressiv, Laf vum Déngscht erëm an benotzen der --verbosity Optioun den Messagen vun der spawned Server ze Vue a richteg Feele presentéiert dann erëm de Déngscht lafen.
  natierlech net: Prozess mat Colombera 6648 (Kand Prozess vum Jean Colombera 7264) ass kom-.
Traceback (rezent Opruff lescht):
  Fichier "G:\Ade  bauen  sb_0-19921351-1470074463.97  Python-2.7.6-Fënsteren-x86-64bit  lib  Site-Formulen  cx_Freeze  initscripts  Console.py", Linn 27, an <Modul>
  Fichier "scripts\mysqlfrm.py", Linn 422, an <Modul>
  Fichier ".\mysql\utilities\command\read_frm.py", Linn 439, an read_frm_files
  Fichier ".\mysql\utilities\command\read_frm.py", Linn 166, an _spawn_server
  Fichier ".\mysql\utilities\command\serverclone.py", Linn 180, an clone_server
  Fichier ".\mysql\utilities\common\tools.py", Linn 273, an get_mysqld_version
IOError: [Errno 13] Zougrëff verweigert: "Version_check"

Kee spezifesche Fall do Roth Deputéierten, Dir braucht der Schrëft ze protégéieren, datt de SQL zu .frm kritt generéiert, all Entréen als "Default ‘0000-00-00 00:00:00", anescht, wäert matkritt de Feeler:

  #1067 - Default Wäert (Default) Onwierksamkeet fir "COMMENT_DATE"

dass!

Quellen

http://www.voxteneo.com/restoring-tables-mysql-database-frm-ibd-files-available/

https://medium.com/@alexquick/transporting-mysql-tablespaces-from-5-6-to-5-7-517c01345fbb#.72zermd8b

http://dev.mysql.com/doc/refman/5.5/en/innodb-multiple-tablespaces.html

https://lanmenezesbr.wordpress.com/2014/10/21/mysql-erro-1146-table-doesnt-exist/

http://stackoverflow.com/questions/7759170/mysql-table-doesnt-exist-but-it-does-or-it-should

Total vun Hits: 21390

12 Rezensiounen “Recuperéieren MySQL Dëscher wou nëmmen d'.frm an .ibd Fichieren disponibel sinn

  1. Rodrigo gesot:

    Wat maachen, wann Dir dëse Feeler Message gesinn: #1815 – intern Feeler. Kann net LSNs an Dësch zréckgesat “meubanco”.”minhatabela”: Donnéeën Struktur Korruptioun.
    Ass et méiglech d'Daten ze Leeschtunge manuell Text? Wéi et ze maachen?
    Ech merci.

  2. Cristian U gesot:

    Salut Taylor,

    Wéi hutt léisen Dir dës Feeler:
    Feeler: Iwwerall Server Operatioun dunn. Klon Server Feeler: Knapp mat neie Beispill ze kommunizéieren. Prozess id = 6648.. bis depressiv, Laf vum Déngscht erëm a benotzen der –verbosity Optioun den Messagen vun der spawned Server ze Vue a richteg Feele presentéiert dann erëm de Déngscht lafen.
    natierlech net: Prozess mat Colombera 6648 (Kand Prozess vum Jean Colombera 7264) ass kom-.

    Ech halen déi selwecht Message feieren an ech hun, wéi et ze léisen.

    Merci

  3. Reginaldo Luiz de Freitas gesot:

    Gratulatioun Taylor, mee didaktesch onméiglech!! Dir sinn déi selwecht Guy!

    Plaz an merci fir Är Erfahrung Deele!

Verloossen engem Antwort

Är Email Adress gëtt net publizéiert. Néideg Felder sinn markéiert mat *