Visszaszerez MySQL tábla, ha csak a .frm fájlokat és ibd állnak rendelkezésre

Hogyan lehet megoldani a “MySQL hiba #1146 -Tábla nem létezik” okozott mellett mozgó fájlokat-.IDB (InnoDB) közvetlenül a könyvtárak között (Táblaterület).

logo_mysql

Probléma

Sok a probléma van a problémákra hoztunk létre. Csak létrehozott egy webhelyet a WordPress, és gondoltam: Mit szólnál látta, hogyan működik a PHP-ben 7? oké, az én-m WampServer használt PHP 5.6, úgy volt, hogy “boldog” ötlet, hogy frissítse a WampServer 2.5 (Apache-2.4.9, MySQL-5.6.17, PHP 5.5.12) a WampServer 3.0.6 (Apache 2.4.23, MySQL 5.7.14, 5.6.25 PHP és Php 7.0.10).

természetesen, indította hát, de az én-m nagy csúszik volt export SQL ilyen oldalon, Ehelyett, csak tette a MySQL fájlok másolatát. (MySQL/adatok) és az alkalmazás (www/oldal). Én voltam benne, hogy a munka, mint a máskor.

Után beiktatás a új WampServer PHP-vel 7, a biztonságimásolat-fájlok és az alkalmazás vissza, csak amikor mentem, hogy teszteljék a böngésző, nem jelenik meg az oldalon, de a képernyő-ból WordPress telepítés, mintha egy új oldal. Megfagyott! Nyissa meg a PHPMyAdmin, és ellenőrizze, hogy ha az adatbázis rendben volt, és látta, hogy, Annak ellenére, hogy az adatbázisban szereplő, Mikor csattant, tetején a tábla, az adatok a következő hiba üzenet:

  MySQL Hiba #1146 -Tábla <TABLE_NAME> felismerőnyelv ' t létezik

Már keresi, és csak alapít ki amit tudod csak másolni vagy áthelyezni a fájlokat közvetlenül egy másik MySQL MySQL címtár Ha fájlokat MyISAM típus, akik frm fájlkiterjesztést. MYD. MYI. Nem tudom, mi történt, de az én-m adatbázis megjelent InnoDB (.frm és idb). Sajnos, egyetlen után a tény, hogy a MySQL dokumentáció figyelmeztetni:

  Nem szabadon mozog .IBD fájlok közötti adatbázis könyvtárak mint tudod, MyISAM asztal fájlokkal. 
  A tábla definícióját tárolja a megosztott InnoDB tablespace tartalmaz az adatbázis neve. 
  A tranzakció azonosítóját és napló sorszámok tablespace fájlokban is eltérnek az adatbázisok.

Megoldás

Cheguei a ver algumas soluções simples, Mas vou descrever aqui egy única que realmente funcionou para mim, apesar de parecer bem mais complexa, encontrada nincs hozzászólás “Táblázat visszaállítása(s) a MySQL adatbázis, amikor frm vagy ibd fájlok rendelkezésre áll“.

Ante, Azonban, egy título de conhecimento, Vale lembrar que em relação ao tipo InnoDB, MySQL, az őr a fájlokat és adatszolgáltatási az ibd .frm.. Elég az elmélet, Nézzük vágott a közepébe!

Lépés 1: Ré hang-teremt a .frm fájlok felépítése

Mint mondta, az frm tartalmazza a tábla szerkezete. Először meg kell letölteni ezt a struktúrát, majd feltölti az adatokat. Ha ezt a 3 az alábbiakban leírt különböző módszerek, de mielőtt, Hadd meséljek valamit a “MySQL Hasznosságok”.

MySQL Hasznosságok | mysqlfrm

Ha Ön nem szándékozik-hoz használ a első módszer javasolt (Online) tehát szükség-hoz használ a szerszám “mysqlfrm” által biztosított a “MySQL Hasznosságok“.

Ez az eszköz kivonat a adat szerkezet és tábla létrehozásához SQL-parancsfájl létrehozása. Ehhez, Letöltés “MySQL Hasznosságok” (olyasmi, mint a mysql-utilities-1.6.4-winx64.msi) és felszerel ez.

Nyissa meg a konzolt (Parancs / A a) a CD paranccsal mozgassa az alapértelmezett telepítési könyvtár (olyasmi, mint a C:\C:Program FilesMySQLMySQL segédprogramok 1.6\). Vegye figyelembe, hogy ezen a könyvtár a kivihető mysqlfrm.exe.

  CD "C:\C:Program FilesMySQLMySQL Hasznosságok 1.6"

Válassza ki csak az egyik alábbi módszerek a tábla szerkezete a .frm fájlokban lévő kivonat:

1º Módszer | Online

1. Látogasson el a webhelyre HTTPS://Recovery.twindb.com/;
2. Kattintson a menü “Visszaszerez szerkezete” majd a “frm fájlt.“;
3. Kattintson a gombra “Böngésző…” Jelölje ki a fájlt, frm; és
4. Kattintson a gombra “Feltöltés” a tábla létrehozási parancsfájl jelenik meg a képernyőn, és.

Lehetséges-hoz küld sokszoros fájlokat frm egyszer generál egy forgatókönyvet az összes tábla. Csak-hoz enged ön teremt egy .zip-val a .frm, mielőtt “Böngésző/feltöltés”.

2º Módszer | Használata –diagnosztikai

/* Általános példa */
   mysqlfrm-diagnosztikai "<forrás elérési út>/mytable.frm" > "<Destination/Path/recovered_mytable.SQL>"
 
/* Példa a gyakorlatban a wp_posts.frm tábla a WordPress */
   mysqlfrm --diagnosztikai "C:\wampbinmysqlmysql5.6.17datameubancowp_posts.frm" > "C:\recovered_wp_posts.SQL"

3º Módszer | Használata –Szerver

/* Általános példa */
  mysqlfrm-szerver=gyökér:jelszo@localhost-port=3311 "<forrás elérési út>/mytable.frm" > "<cél elérési út>/recovered_mytable.SQL"
 
/* Példa a gyakorlatban a wp_posts.frm tábla a WordPress */
  mysqlfrm --Szerver=gyökér@localhost --Port=3307 ""(C):\wampbinMySQL\MySQL5.6.17\datameubancowp_posts.frm" > "(C):\recovered_wp_posts.SQL"

Ne használja a MySQL-port! Válassza a bármely más rendelkezésre álló. Vegye figyelembe, hogy a parancs átirányítja a kimeneti .SQL fájlba, amely a megadott elérési út menti (abban az esetben, (C):).

Lépés 2: Újra létrehozni a táblázatot az adatbázisban

Az új adatbázis, hozzon létre egy táblát lépésben létrehozott parancsfájl 1. Személyesen a WampServer tiszta verziót telepítette, és használt PHPMyAdmin (http://localhost/phpmyadmin /) az adatbázis létrehozása és importálása lépésben létrehozott SQL-parancsfájl 1 (recovered_wp_posts.SQL). Ez a szkript létrehoz 2 fájlokat a könyvtárba, a MySQL adatbázis:

  SUA_TABELA.frm SUA_TABELA.IDB

Az én esetemben, Ezek a fájlok a készített (C):\wamp64binmysqlmysql5.7.14data<az én-m ülés>. IE, Keresse meg a MySQL bevezetés, és vegye figyelembe, hogy a könyvtárban dátum Ott lesz az adatbázis és az említett két fájl.

Lépés 3: Távolítsa el az új .IDB-fájl

Para Bútorszállító o novo arquivo .idb, végre o seguinte comando SQL:

/* Általános példa */
  ALTER TABLE tábla TABLESPACE ELVETÉSE;
 
/* Exemplo na gyakorlat com Andrea wp_posts csinál WordPress */
  Megváltoztat Asztal wp_posts TABLESPACE ELVETÉSE;

Este comando o link entre egy Andrea e o tablespace eltávolítása (Amennyiben fizikailag tárolja az adatbázis fájlok), és a .IDB fájlt.

Lépés 4: A régi .IDB fájlt másolni

Az eredeti .IDB-fájl (az adatokat tartalmazó) kell lemásolni, arra a helyre, az .IDB lépésben törölt 3. Használja a Ctrl + C és Ctrl + V, vagy megölni magát a parancssor használatával.

Lépés 5: A táblázat újraaktiválása

A törött láncszem-ban lép 3 kell állítani, a következő paranccsal:

/* Általános példa */
  ALTER TABLE tábla importálása TABLESPACE;
 
/* Exemplo na gyakorlat com Andrea wp_posts csinál WordPress */
  Megváltoztat Asztal wp_posts behozatali TABLESPACE;

Ne aggódj, ha néhány figyelmeztetések, Azonban, Lehet, hogy általános hiba, a következő hibaüzenet jelenik meg:

  #1808 - Sémaeltérés (Tábla ROW_TYPE_DYNAMIC sorában formátuma, .IBD-fájl formátuma ROW_TYPE_COMPACT sor.)

Neste caso, Ez történt köszönhetően másképpen, mint a mysql 5.7.14 (ÚJ) létrehoz egy alapértelmezett táblát Mysql-5.6.17 képest (RÉGI), sem o ROW_FORMAT = kompakt.

Então, se Ön está usando MySQL > = ao mysql5.7.14, tudo que Ön precisa fazer é acrescentar ROW_FORMAT = kompakt na definição de criação da Andrea.

  CREATE TABLE "wp_posts" (. . .) MOTOR=InnoDB ROW_FORMAT=kompakt

E Outros erros

Apenas para Infinite hagyni registrado, antes de Get sucesso na extração de dados do .frm, tási alguns erros:

  # Forrás-ra localhost: ... csatlakozó.
  # Kezdve a szült szerver port 3304 ... Kísérlet-hoz megáll hiba nem szült szerver.  Folyamat id = 6648.
  HIBA: Spawn kiszolgálói művelet nem sikerült. Klón szerver hiba: Nem lehet kommunikálni új példány. Folyamat id = 6648.. Diagnosztizálása, a segédprogram futtatásához újra és használata a --részletességi lehetőség az szült kiszolgálótól érkező üzenetek megtekintéséhez, és javítsa a hibákat bemutatott, majd futtassa a segédprogramot, ismét.
  SIKER: A PID a folyamat 6648 (folyamat Gyermekfolyamata 7264) megszűnt.
Traceback (a legutóbbi hívás utolsó):
  Fájl "G:\adebuildsb_0-19921351-1470074463.97Python-2.7.6-Windows-x86-64bitlibsite-packagescx_FreezeinitscriptsConsole.py", vonal 27, a <modul>
  Fájl "scripts\mysqlfrm.py", vonal 422, a <modul>
  Fájl ".\mysql\utilities\command\read_frm.py", vonal 439, a read_frm_files
  Fájl ".\mysql\utilities\command\read_frm.py", vonal 166, a _spawn_server
  Fájl ".\mysql\utilities\command\serverclone.py", vonal 180, a clone_server
  Fájl ".\mysql\utilities\common\tools.py", vonal 273, a get_mysqld_version IOError: [Errno 13] Engedély megtagadva: "version_check"

A konkrét esetben a WordPress, el kell távolítani a forgatókönyvet, hogy a generált alatt létrehozott SQL. frm, az összes bejegyzés alapértelmezett ‘0000-00-00 00:00:00’, egyébként, lesz elkapni a hiba:

  #1067 - Alapértelmezett érték (alapértelmezett) nem érvényes a "comment_date"

Ez az!

Betűtípusok

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

Találatok száma: 21446

12 Megjegyzések “Visszaszerez MySQL tábla, ha csak a .frm fájlokat és ibd állnak rendelkezésre

  1. Rodrigo azt mondta::

    Mi a teendő, amikor vagy lát a következő hiba üzenet: #1815 – Belső hiba. Nem reset LSNs tábla “az én-m ülés”.”Tábla”: Adat szerkezet romlás.
    Manuálisan futtatható-e az adatok lapkák? Hogyan viselkedni csinál ez?
    Mivel már köszönöm.

  2. Cristian U azt mondta::

    Szia Taylor,

    Hogyan sikerült megoldani ezt a hibát:
    HIBA: Spawn kiszolgálói művelet nem sikerült. Klón szerver hiba: Nem lehet kommunikálni az új példány. Folyamat id = 6648.. Diagnosztizálása, a segédprogram futtatásához újra, és használja a –részletességi lehetőség az szült kiszolgálótól érkező üzenetek megtekintéséhez, és javítsa a hibákat bemutatott, majd futtassa a segédprogramot, ismét.
    SIKER: A PID a folyamat 6648 (folyamat Gyermekfolyamata 7264) megszűnt.

    Ugyanazt az üzenetet kapom, és én nem tudom, hogyan kell megoldani, hogy ´.

    kösz

  3. Reginaldo Luiz de Freitas azt mondta::

    Gratulálunk Taylor, de didaktikai lehetetlen!! -a ' ugyanaz a fickó!

    ölelés, és köszönet részére cserépdarab-a tapasztalat!

hagyj válaszüzenetet

Az e-mail címét nem publikus. A kötelezően kitöltendő mezők jelölése *