Berreskuratu MySQL taulak denean .frm soilik eta .ibd fitxategiak dira eskuragarri

nola konpondu “MySQL Akatsa #1146 - Mahai ez da existitzen” fitxategiak mugitzea eragindako .idb (InnoDB) zuzenean zerrendak arteko (tablespace).

logo_mysql

arazoa

arazo asko arazo sortzen dugu dira ditugun. Besterik ez nuen webgune batean WordPress eta pentsamendu erabiliz prestatu: hala nola ulertu nola egin PHP lan egiten du 7? Ondo da, Nire WampServer erabili PHP gisa 5.6, orduan izan nuen “zoriontsu” ideia berritu WampServer 2.5 (Apache 2.4.9, Mysql-5.6.17, Php5.5.12) egiteko WampServer 3.0.6 (Apache2.4.23, Mysql5.7.14, Php5.6.25 e Php 7.0.10).

argi, Hasteko backup by I, baina nire misstep big ez aukeratu zuten SQL esaterako gunea esportatzeko, Horren ordez, besterik MySQL fitxategiak kopia bat egin (mysql / data) eta aplikazio (www / gune). Ziur lan litzateke nengoen, lehen bezala.

the WampServer berria instalatu PHP ondoren 7, MySQL backup fitxategi eta aplikazioa jarri dut ez atzera, denean bakarrik nabigatzaileak nuen probatzen zen, Ez agertu gunea, baina, WordPress instalazio-pantaila balitz bezala web berri bat bailitzan. gozoki! Open PHPMyAdmin datu-basea Ok zen bada, eta ikusi zuen ikusteko, ari zerrendatu datu-basea arren, denean mahai datuak ikusteko klik agertu honako error message:

  MySQL Akatsa #1146 - Table <table_name> ez da existitzen

bilatuta izan dut eta hori baino ezin duzu kopiatu edo eraman fitxategiak zuzenean beste MySQL MySQL direktorioa fitxategi mota MyISAM badira aurkitu dut, luzapena .frm .MYD .MYI dituztenei. Ez dakit zer gertatu, baina nire datu-basea InnoDB bezala agertu (.frm e .idb). tamalez, Gertaera MySQL dokumentazioa ikusi ondoren bakarrik dagoeneko ohartarazi:

  Ezin duzu askatasunez mugitzeko .IBD datu-basea guneak artean fitxategiak gisa Ahal MyISAM mahai fitxategiekin duzu. 
  the InnoDB elkarbanatu tablespace gordeta mahai definizioa datu-basearen izena hartzen ditu. 
  transakzio identifikazioak eta saioa hasi tablespace fitxategiak gordetako sekuentzia zenbakiak ere base desberdinak.

konponbidea

Zenbait irtenbide sinpleak egin dut, baina hemen deskribatuko dut inor benetan niretzat lan egin, nahiz konplexuak askoz badirudi, Post aurkitu “zaharberritzea taula(s) MySQL datu-basean denean frm edo IBD artxibo erabilgarriak dira soilik“.

aurretik, ordea, jakintza bidez, gogora dezagun konparatu InnoDB duten, MySQL bere egitura mantentzen .frm fitxategi eta datuak .ibd batean. Larreina teoria, aukera ematen eskuratu behera!

urrats 1: Berriro sortu .frm egitura

esan dudan bezala, .frm mahai baten egitura dauka. Lehen egitura eta ondoren berreskuratzeko popular datuak ondoren behar dugu. Egin dezakezu 3 ondoren deskribatzen metodo ezberdinak, baina aurretik, utzi tell me buruz zerbait “MySQL Utilities”.

MySQL Utilities | mysqlfrm

Ez baduzu nahi, proposatutako metodoa erabili 1 (Online) Orduz tresna erabili behar duzu “mysqlfrm” emandako arabera “MySQL Utilities“.

Tresna honek datu egitura atera egingo du eta SQL mahaia sortzea gidoia sortzen. horretarako, deskargatu “MySQL Utilities” (algo como mysql-utilitateak-1.6.4-winx64.msi) eta instalatu.

Ireki edo kontsola (Komando / DE) eta erabili CD komando instalazioa lehenetsia direktorioa mugitzeko (C horrelako zerbait:\Programa fitxategiak MySQL MySQL Utilities 1.6\). Kontuan direktorioa barruan egikarigarria da mysqlfrm.exe.

  cd "C:\Programa fitxategiak  MySQL  MySQL Utilities 1.6"

Aukeratu beheko metodo bat bakarrik .frm jasotako mahai baten egitura ateratzeko:

1Metodo zk | Online

1. Webgunea bisitatu https://recovery.twindb.com/;
2. Egin klik menuan “berreskuratu egitura” eta gero ere “.frm fitxategitik“;
3. Klikatu botoia “Browser…” eta hautatu .frm fitxategia; e
4. Klikatu botoia “Upload” eta mahai sortzea gidoia pantailan agertzen.

.frm anitz bidali dezakezu behin gidoia bakar bat sortuz taula guztiak batera. Just .zip sortzean bere .frm guztiak aurretik utzi “Browser / Upload”.

2Metodo zk | erabiliz –diagnostiko

/* Adibidea generiko */
   mysqlfrm -diagnostic "<iturria / bidea>/mytable.frm" > "<helmuga / bidea / recovered_mytable.sql>"
 
/* WordPress mahai wp_posts.frm praktika Adibidea */
   mysqlfrm --diagnostiko "C:\Wamp  bin  mysql  mysql5.6.17  datuen  meubanco  wp_posts.frm" > "C:\recovered_wp_posts.sql"

3Metodo zk | erabiliz –zerbitzaria

/* Adibidea generiko */
  mysqlfrm -server=erro:nire_ pasahitza@localhost -port=3311 "<iturria / bidea>/mytable.frm" > "<helmuga / bidea>/recovered_mytable.sql"
 
/* WordPress mahai wp_posts.frm praktika Adibidea */
  mysqlfrm --zerbitzaria=erro@localhost --portu=3307 ""C:\Wamp  bin mysql\mysql5.6.17\datuakmeubancowp_posts.frm" > "C:\recovered_wp_posts.sql"

Ez MySQL ataka erabili! Aukeratu beste edozein eskuragarri. Kontuan komandoa dela hori zehaztutako bide gordetako fitxategi .sql batera irteera plazarik (no kasu, C:).

urrats 2: Berriro sortu mahaian zure datu-basean

base berri batean, mahai bat sortu Step sortutako gidoia batera 1. Pertsonalki WampServer bertsio garbi bat instalatu dut eta PHPMyAdmin erabili (http://localhost / phpmyadmin /) datu-basea sortzeko eta SQL gidoia urratsean sortu inportatu 1 (recovered_wp_posts.sql). Script hau sortuko du 2 Zure MySQL datu-basearen direktorioko fitxategiak:

  SUA_TABELA.frm
  SUA_TABELA.GBI

Nire kasuan, fitxategi horiek sortu ziren C:\wamp64 bin mysql mysql5.7.14 datuen <MYDATABASE.GDB>. bestela esanda, Zure MySQL instalatzeko begiratu eta kontuan izan duen direktorioa datuak Han datu base bat eta aipatutako bi fitxategi izango.

urrats 3: Kendu .idb fitxategi berria

the .idb fitxategi berri kentzeko, exekutatu SQL komando:

/* Adibidea generiko */
  ALTER TABLE NireTaula BAZTERTU Tablespace;
 
/* WordPress mahai wp_posts praktika Adibidea */
  ALTER TABLE wp_posts BAZTERTU Tablespace;

Komando honek taula eta taula espazio arteko lotura kentzen (Non daude fisikoki gordetzen dute datu-basearen, fitxategiak), eta fitxategia kendu .idb.

urrats 4: Kopiatu .idb fitxategi zahar

Jatorrizko fitxategia .idb (bertan datuak ditu) .idb lekua bertan Step in ezabatu da kopiatu behar duzu 3. Erabili CTRL-C eta Ctrl + V edo baita hiltzeko komando lerroan.

urrats 5: Berraktibatzeko mahai

Step hondatutako lotura 3 honako komandoa batera berrezarri behar duzu:

/* Adibidea generiko */
  ALTER TABLE NireTaula IMPORT Tablespace;
 
/* WordPress mahai wp_posts praktika Adibidea */
  ALTER TABLE wp_posts IMPORT Tablespace;

Ez kezkatu abisu batzuk lortu baduzu, ordea, Matxura orokorrean honako error erakutsiz emateko daitezke:

  #1808 - eskema datoz (Table ROW_TYPE_DYNAMIC ilara formatuan ditu, .IBD fitxategia ROW_TYPE_COMPACT ilara formatuan dauka.)

Kasu honetan, hau gertatu dela mysql5.7.14 beste modu (NEW) taula lehenetsia sortzen du MySQL-6.5.17 aldean (OLD), sem o ROW_FORMAT = trinkoa.

gero, you MySQL erabiliz gero> = mysql5.7.14 du, Egin behar duzun guztia gehitzeko ROW_FORMAT = trinkoa mahaia sortzea definizio.

  Sortu taula `wp_posts` (. . .) ENGINE=InnoDB ROW_FORMAT=trinkoa

beste huts

Just erregistro kodea, .frm datu erauzketa arrakasta aurretik, akats batzuk izan nuen:

  # localhost on Iturria: ... konektatua.
  # abiaraziko zerbitzariari atakan aurrera 3304 ... ERROREA huts abiaraziko zerbitzaria gelditzeko saiatuko.  Prozesua id = 6648.
  ERROR: Abiarazi zerbitzaria eragiketak huts. Clone zerbitzaria error: Ezin da komunikatu berriaren Esate. Prozesua id = 6648.. to diagnostikoa, korrika baliagarritasuna behin eta erabilera du --verbosity aukera abiaraziko zerbitzaritik mezuak ikusteko eta zuzentzeko orduan aurkezten akatsak exekutatu baliagarritasuna berriro.
  SUCCESS: PID dituzten prozesuak 6648 (Umea PID prozesua 7264) amaitu da.
Traceback (berriena deiaren azken):
  file "G:\ade  eraikitzeko  sb_0-19921351-1470074463.97  Python-2.7.6-windows-x86-64bit  lib  gune-paketeak  cx_Freeze  initscripts  Console.py", line 27, in <modulua>
  file "scripts\mysqlfrm.py", line 422, in <modulua>
  file ".\mysql\utilities\command\read_frm.py", line 439, read_frm_files in
  file ".\mysql\utilities\command\read_frm.py", line 166, _spawn_server in
  file ".\mysql\utilities\command\serverclone.py", line 180, clone_server in
  file ".\mysql\utilities\common\tools.py", line 273, get_mysqld_version in
IOError: [errno 13] baimena ukatu: 'Version_check'

WordPress kasu zehatzean, gidoia .frm lortutako SQL sortutako hori kendu behar dituzu, sarrera guztiak 'lehenetsita ‘0000-00-00 00:00:00', Besterik, error harrapatzeko izango:

  #1067 - balio lehenetsia (lehenetsi) 'Comment_date' for baliogabea

hori!

iturri

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

denera: 87863

21 berrikuspen “Berreskuratu MySQL taulak denean .frm soilik eta .ibd fitxategiak dira eskuragarri

  1. Rodrigo esan:

    Zer egin behar denean, ondoko errore mezua ikusiko duzu: #1815 – Barneko errorea. Ezin da berrezarri taulan LSNs “MYDATABASE.GDB”.”minhatabela”: Datu-egitura ustelkeria.
    Posible al da eskuz txertatzen datuak burutzeko da? Nola egiten den?
    Eskerrak eman dut.

  2. Cristian U esan:

    Hi Taylor,

    Nolatan error hau konpontzeko:
    ERROR: Abiarazi zerbitzaria eragiketak huts. Clone zerbitzaria error: Ezin da instantzia berria komunikatu. Prozesua id = 6648.. to diagnostikoa, korrika baliagarritasuna behin eta erabili –verbosity aukera abiaraziko zerbitzaritik mezuak ikusteko eta zuzentzeko orduan aurkezten akatsak exekutatu baliagarritasuna berriro.
    SUCCESS: PID dituzten prozesuak 6648 (Umea PID prozesua 7264) amaitu da.

    mezu bera jaso izaten dut, eta ezagutzen ez dudana nola konpondu.

    eskerrik asko

  3. Reginaldo Luiz de Freitas esan:

    parabens Taylor, baina didaktikoa ezinezkoa!! zara tipo bera!

    besarkada eta zure esperientzia partekatzeko esker!

  4. Marcellus menezes esan:

    Zer harrigarria punta batekin, I zen kezkatuta guztia galduko nuke… Lan eta hilabeteko gordeko dituzu… eskerrik asko!!!!

  5. Thiago Thomas esan:

    Opa, besterik nahi duzun eskerrak eman zure ezagutza partekatzea antolatuan eta garbi egiteko! me lagundu asko It! eskerrik asko, bera!

  6. Renato esan:

    Kaixo,
    Nirekin hurrengo errorea gertatu da urratsean 5:
    ERROR 1812 (HY000): Tablespace falta da `bdTest`.`tblMov` taularako.

    esan al didazu nola konpondu errore hau?

    eskertuta

  7. raccoon esan:

    Kaixo, Arazo bat dut, bihurtzen da xampp desinstalatu nuela apache niretzat ez delako funtzionatu, argi eta garbi berriz instalatu nuen eta aurreko xampp karpetaren gainean geratzen zena, datuetan, Aurretik bertan nituen datu-baseen izenak dituzten karpetak baino ez nituen, eta .frm eta .ibd fitxategiak baino ez ditut, egia esan ezin izan dudala tutoriala ondo aplikatu, Lagunduko didazu mesedezooooooooooooooorrrr

  8. Aline esan:

    mesedez, Zure tutoriala jarraitu dut baina azkenean nireak beste errore bat izan du:

    #1808 – eskema datoz (FPS_SPACE_FLAGS=0x0 espero zen, .ibd fitxategiak 0x21 dauka.)

    Ikusi nuen mysql batetik bestera taulako errenkada formatu ezberdina izan daitekeela errore hau bistaratzea eragiten duena, baina ez legoke inportatutako taula formatua mysql-n erabiltzen den berera bihurtzeko modurik, gatazka hau ez izateko? Hau egiten duen eta inportazioa egiten duen sql komando bat badago mesedez idazten baduzu eskertuko nuke, ez dudalako asko ulertzen.. Mesedez, lagundu iezadazu, premiazko webgune bat berreskuratzen saiatzen ari naiz… nire mysql bertsioa da :
    zerbitzariaren bertsioa: 10.1.25-MariaDB

Erantzun

Zure e-posta helbidea ez da argitaratuko.