MySQL tabeleid tagasi, kui saadaval on ainult .frm faile ja ibd

Kuidas lahendada “MySQL Error #1146 -Tabel ei ole olemas” põhjustatud .IDB failide teisaldamine (InnoDB) kataloogide vahel (Tabeliruumi).

logo_mysql

Probleem

Paljud probleemid on meil on probleeme, oleme loonud. Mul oli loodud kasutades WordPress saidi ja arvasin, et: Kuidas näha konkurentsipoliitika php 7? Ok, Kuna minu WampServer kasutada PHP 5.6, nii et ma pidin “Õnnelik” idee minna ning WampServer 2.5 (Apache-2.4.9, MySQL-5.6.17, PHP 5.5.12) jaoks WampServer 3.0.6 (Apache 2.4.23, MySQL 5.7.14, 5.6.25 PHP ja Php 7.0.10).

Muidugi, Alustatud poolt varukoopia, Aga minu suur slip oli loobuda ekspordi SQL sellise saidi, Selle asemel, just tehtud koopia MySQL failid (MySQL/andmete) ja rakendus (www/site). Olin kindel, et see töö, nagu muul ajal.

Pärast paigaldamist uue WampServer php 7, backup failid ja taotluse tagasi, ainult siis, kui ma läksin test brauseri, ei ilmu saidi, kuid WordPress paigaldus ekraanil nagu oleks uus sait. Külmutas! PHPMyAdmin ja kontrollige, kas andmebaasi oli Ok ja ma nägin, et avada, Hoolimata andmebaasis loetletud, Kui klõpsasite järgmine tõrketeade andmete vaatamiseks tabeli peal:

  MySQL Tõrge #1146 -Tabel <TABELI_NIMI> ei "t olemas

Olen otsinud ja ma lihtsalt avastasin, et saate ainult kopeerida või teisaldada faile otse teise MySQL MySQL kataloogi, kui failid on MyISAM tüüp, need frm faililaiend. MYD. MYI. EU não sei bem o que houve, Mas minha baasi de dados aparecia como InnoDB (.frm e .idb). Infelizmente, Kas Só depois ocorrido vi que documentação do MySQL já alertava:

  Ei saa vabalt liikuda .IBD failid andmebaasi kataloogid Kui võimalik MyISAM tabeli failidega. 
  Salvestatud InnoDB jagatud Tabeliruumi määratlus sisaldab andmebaasi nimi. 
  Kande ID-d ja Logi salvestatud failid Tabeliruumi järjekorranumbrid ka erinevad andmebaasid.

Lahendus

Cheguei on ver algumas soluções lihtsad, Mas vou descrever aqui única que realmente funcionou para mim, Kuigi see tundub palju keerulisem, leitud postitus “Tabeli taastamine(s) MySQL andmebaasi frm või ibd failid on saadaval ainult“.

Enne, Aga, teabebaasi jaotise, Pea meeles, et seoses selle InnoDB tüüp, MySQL teie valvur struktuuri failide ja andmete ibd .frm.. Piisavalt teooria, Let's lõigatud tagaajamine!

Samm 1: Uuesti luua struktuuri .frm faile

Nagu ütles, selle frm sisaldab tabeli struktuuri. Kõigepealt on vaja see struktuur seejärel asustada andmete toomiseks. Selleks 3 allpool kirjeldatud erinevad meetodid, kuid enne, Lubage mul teile öelda midagi selle “MySQL kommunaalteenuste”.

MySQL kommunaalteenuste | mysqlfrm

Kui te ei kavatse kasutada pakutud meetod (Online) Seega peate tööriista kasutamine “mysqlfrm” mida on “MySQL kommunaalteenuste“.

See vahend ekstrakti andmestruktuuri ja tabeli loomiseks SQL-skripti loomine. Selle, Lae “MySQL kommunaalteenuste” (midagi sellist mysql-utilities-1.6.4-winx64.msi) ja paigaldada see.

Avatud konsooli (Käsk / Ning selle) ja käsu CD abil teisaldada vaikimisi installi kataloog (midagi sellist C:\C:Program FilesMySQLMySQL Utilities 1.6\). Pange tähele, et selles kataloogis on käivitatav mysqlfrm.exe.

  CD "C:\C:Program FilesMySQLMySQL Utilities 1.6"

Valida üks alltoodud meetodites eraldada oma .frm toimikutes sisalduva tabeli struktuuri:

1º Meetod | Online

1. Külastage veebisaiti HTTPS://Recovery.twindb.com/;
2. Klõpsake menüü “Struktuuri taastamine” ja siis “frm faili.“;
3. Klõpsake nuppu “Brauser…” ja valige fail frm; ja
4. Klõpsake nuppu “Lisamise kuupäev” tabeli loomine script kuvatakse ekraanil.

Saab saata mitu faile frm kord ühe skripti koos kõigi tabelite loomine. Lihtsalt teile luua oma .frm enne on .zip “Brauseri/Upload”.

2º Meetod | Kasutades –diagnostika

/* Üldine näide */
   mysqlfrm-diagnostika "<Allikas/tee>/mytable.frm" > "<Destination/Path/recovered_mytable.SQL>"
 
/* Näiteks wp_posts.frm tabel koos WordPress */
   mysqlfrm --diagnostika "C:\wampbinmysqlmysql5.6.17datameubancowp_posts.frm" > "C:\recovered_wp_posts.SQL"

3º Meetod | Kasutades –Server

/* Üldine näide */
  mysqlfrm-server=juur:minuparool@localhost port=3311 "<Allikas/tee>/mytable.frm" > "<sihtkoha/tee>/recovered_mytable.SQL"
 
/* Näiteks wp_posts.frm tabel koos WordPress */
  mysqlfrm --Server=juur@localhost --Port=3307 ""(C):\wampbinMySQL\MySQL5.6.17\datameubancowp_posts.frm" > "(C):\recovered_wp_posts.SQL"

Mitte kasutada MySQL port! Vali mõni muu saadaval. Pange tähele, et käsk redirects väljund .SQL faili, mis on salvestatud määratud teele (juhul, (C):).

Samm 2: Looge uuesti oma andmebaasi tabelisse

Uues andmebaasis, juhises loodud skripti loomine 1. Ma isiklikult WampServer puhas versioon installeerida ja kasutada PHPMyAdmin (http://localhost/phpmyadmin /) andmebaasi luua ja importida juhises loodud SQL-skripti 1 (recovered_wp_posts.SQL). See skript loob 2 failide kataloogis oma MySQL andmebaasi:

  SUA_TABELA.frm SUA_TABELA.IDB

Minu puhul, Need failid on loodud (C):\wamp64binmysqlmysql5.7.14data<Minu asukoht>. IE, soetada sua paigaldamine do MySQL e Märkus que no diretório andmed Andmebaasi ja nimetatud kahe faili.

Samm 3: Uus .IDB faili

Uus .IDB faili eemaldamiseks, Järgmine SQL käsk:

/* Üldine näide */
  ALTER TABLE mytable VISKAMA TABELIRUUMI;
 
/* Näide koos wp_posts tabelis WordPress */
  ALTER TABLE wp_posts TABELIRUUMI VISKAMA;

See käsk eemaldab ja selle Tabeliruumi vahel (Kui füüsiliselt ladustatakse Andmebaasifailid), ja eemaldada fail .IDB.

Samm 4: Vana .IDB faili kopeerimine

Algfaili .IDB (mis sisaldab andmeid) kopeerida selle sai kustutatud .IDB etapis tuleb 3. Kasuta Ctrl + C ja Ctrl + V või tappa ennast käsurea abil.

Samm 5: Tabeli uuesti

Juhises lingist 3 vajab taastamist järgmine käsk:

/* Üldine näide */
  ALTER TABLE mytable impordi TABELIRUUMI;
 
/* Näide koos wp_posts tabelis WordPress */
  ALTER TABLE wp_posts impordi TABELIRUUMI;

Ärge muretsege, kui te saate mõned hoiatused, Aga, See võib olla kantud järgmine tõrge häire:

  #1808 - Skeemi ei ühti (Tabelis on ROW_TYPE_DYNAMIC rida Formaat, .IBD fail on ROW_TYPE_COMPACT rida vormingus.)

Sel juhul, See juhtus Kuna teisiti kui mysql 5.7.14 (UUS) loob vaikimisi võrreldes Mysql-5.6.17 (VANA), ilma selle ROW_FORMAT = kompaktne.

Nii, Kui kasutate MySQL > = mysql 5.7.14, Kõik, mida vaja teha on lisada ROW_FORMAT = kompaktne tabeli loomist määratlus.

  CREATE TABLE "wp_posts" (. . .) MOOTOR=Innodb ROW_FORMAT=Kompaktne

Muud tõrked

Kirje jaoks, enne andmete ekstraktimine asukohast edu. frm, Mul oli mõned vead:

  # Allikas: localhost: ... ühendatud.
  # Algab tekitanud server Port 3304 ... Peatamise viga ei tekitanud server.  Protsessi id = 6648.
  TÕRGE: Kudema server toiming nurjus. Kloonide serveri tõrge: Ei saa suhelda Uus astme. Protsessi id = 6648.. Diagnoosida, Käivitage utiliit uuesti ja kasutada selle --Jaarittelu võimalus vaadata tekitanud serverist ja vigade esitatud ja seejärel käivitage utiliit uuesti.
  EDU: Protsessi PID 6648 (lapse protsessi PID 7264) lõpetamisest.
Jälgimise (viimase kõne on Viimane):
  Faili "G:\adebuildsb_0-19921351-1470074463.97Python-2.7.6-Windows-x86-64bitlibsite-packagescx_FreezeinitscriptsConsole.py", rida 27, aastal <moodul>
  Faili "scripts\mysqlfrm.py", rida 422, aastal <moodul>
  Faili ".\mysql\utilities\command\read_frm.py", rida 439, aastal read_frm_files
  Faili ".\mysql\utilities\command\read_frm.py", rida 166, aastal _spawn_server
  Faili ".\mysql\utilities\command\serverclone.py", rida 180, aastal clone_server
  Faili ".\mysql\utilities\common\tools.py", rida 273, aastal get_mysqld_version IOError: [Veakood 13] Juurdepääs keelatud: "version_check"

Ei ole sel juhul específico WordPress, Você precisa remover script que gerou o SQL obtidos em .frm, todas entradas nagu ' Vaikimisi ‘0000-00-00 00:00:00’, Sel juhul contrário, vai pegar o tõrgee:

  #1067 - Valor Padrãos (Vaikimisi) inválido para 'comment_date"

See on see!

Fontes

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

Kokku vaatamisi: 21448

12 Kommentaarid “MySQL tabeleid tagasi, kui saadaval on ainult .frm faile ja ibd

  1. Rodrigo ütles:

    Mida teha, kui kuvatakse järgmine tõrketeade: #1815 – Sisemine tõrge. Ei saa lähtestada mille LSNs tabelis “Minu asukoht”.”myTable”: Andmete struktuuri rikutuse.
    Saate käivitada lisab andmed käsitsi? Selle?
    Juba Tänan teid.

  2. Cristian U ütles:

    Tere Taylor,

    Kuidas aitab lahendada see viga:
    TÕRGE: Kudema server toiming nurjus. Kloonide serveri tõrge: Ei saa suhelda uus eksemplar. Protsessi id = 6648.. Diagnoosida, Käivitage utiliit uuesti ja kasutada selle –Jaarittelu võimalus vaadata tekitanud serverist ja vigade esitatud ja seejärel käivitage utiliit uuesti.
    EDU: Protsessi PID 6648 (lapse protsessi PID 7264) lõpetamisest.

    Ma hoida saanud sama sõnum ja ma ei tea, kuidas seda lahendada ´.

    Tänud

  3. Reginaldo Luiz de Freitas ütles:

    Palju õnne Taylor, kuid didaktiline võimatu!! sa oled sama mees!

    kallistada ja Täname, et jagada oma kogemusi!

Jäta vastus

Selle e-posti aadressi ei avaldata. Kohustuslikud väljad on tähistatud *