Phinda MySQL amathebula lapho kuphela .frm namafayela .ibd ayatholakala

Indlela ukuxazulula “Iphutha MySQL #1146 - Ithebula alikho nhlobo” okubangelwa ngamafayela ahambayo .idb (InnoDB) ngqo phakathi Izincwajana (tablespace).

logo_mysql

inkinga

Eziningi zalezi zinkinga siye kukhona izinkinga sakha. Ngangisanda ukulungiselela nje website usebenzisa WordPress nemicabango: ezifana ukubona ukuthi isebenza kanjani PHP 7? Kulungile, njengoba WampServer esetshenziswa PHP yami 5.6, ngakho kwadingeka “happy” umqondo ukuthuthukisa WampServer 2.5 (Apache-2.4.9, Mysql-5.6.17, Php5.5.12) ngoba WampServer 3.0.6 (Apache2.4.23, Mysql5.7.14, Php5.6.25 futhi Php 7.0.10).

esicacile, Ngaqale ngafunda yokusekelayo, kodwa misstep yami elikhulu ezikhetha ukungawugubhi okuthekelisa SQL Site ezifana, esikhundleni it, nje wenza ikhophi amafayela MySQL (MySQL / idatha) kanye nesicelo (www / site). I wayeqiniseka kwakuphumelela, njengakuqala.

Emva kokufaka WampServer entsha nge PHP 7, Ngabeka MySQL amafayela yokusekelayo kanye nesicelo khona emuva, kuphela lapho mina avivinye isiphequluli, Ibhayisikobho akabonakalanga, kodwa WordPress ukufakwa screen sengathi iwebhusayithi. jelly! Vula phpmyadmin ukubona uma database kwaba Ok futhi wabona ukuthi, naphezu kokuba efakwe ohlwini database, lapho mina uchofoze etafuleni ukubuka idatha sengathi iphutha umyalezo olandelayo:

  MySQL Iphutha #1146 - Table <table_name> awuphili

Bengilokhu ekufuneni futhi ngathola ukuthi ungakwazi kuphela ukukopisha noma ukuhambisa amafayela MySQL ngqo kwenye lwemibhalo MySQL uma amafayela uhlobo MyISAM, labo nge extension .frm .MYD .MYI. Angazi ngempela ukuthi kwenzakalani, kodwa database wami uvele njengoba InnoDB (.frm e .idb). ngeshwa, kuphela emva umcimbi wabona imibhalo MySQL kakade waxwayisa:

  Awukwazi ngokukhululekile ukuthutha .ibd amafayela phakathi database lwemibhalo njengoba unga ngamafayela etafuleni MyISAM. 
  The definition itafula agcinwe kule tablespace InnoDB ehlanganyelwe inegama database. 
  Ama-ID transaction kanye log Izinombolo ukulandelana egcinwe ku amafayela tablespace futhi ziyahluka yolwazi.

isixazululo

Ngabona ezinye izixazululo ezilula, kodwa mina ngeke ukuchaza lapha lowo wasebenza ngempela kimi, nakuba kubonakala eziyinkimbinkimbi ngokwengeziwe, Thumela ayitholakalanga “ithebula Iyabuyisela(s) e MySQL database lapho frm noma ibd amafayela ayatholakala kuphela“.

ngaphambi, Nokho, ngendlela yolwazi, Kubalulekile nokukhumbula ukuthi uma kuqhathaniswa InnoDB, MySQL kugcina oyiyo amafayela .frm nedatha .ibd. theory Enough, lets get phansi ukuze!

isinyathelo 1: Lokuphinda isakhiwo of .frm

njengoba ngasho, the .frm iqukethe isakhiwo yetafula lakho. Okokuqala sidinga ukuba alulame ukuthi isakhiwo bese emva idatha popular. Ungakwenza 3 Izindlela Different ezichazwe ngezansi, ngaphezulu ngaphambi, ake ngikutshele okuthize mayelana “MySQL Izinsiza”.

MySQL Izinsiza | mysqlfrm

Uma ungenalo uhlose ukusebenzisa indlela ehlongozwayo 1 (Online) ke udinga ukusebenzisa ithuluzi “mysqlfrm” olunikezwa “MySQL Izinsiza“.

Leli thuluzi ngeke luthathe isakhiwo idatha futhi zikhiphe SQL ithebula script indalo. ngoba lokhu, thwebula “MySQL Izinsiza” (into efana mysql-Izinsiza-1.6.4-winx64.msi) futhi ufake-o.

Vula console (Command / OF) bese usebenzisa umyalo CD ukuhambisa ukufakwa ezenzakalelayo lwemibhalo (into efana C:\Uhlelo Amafayela MySQL MySQL Izinsiza 1.6\). Qaphela ukuthi ngaphakathi ukuthi lwemibhalo kuyinto elisebenzisekayo mysqlfrm.exe.

  cd "C:\Amafayela Uhlelo  MySQL  MySQL Izinsiza 1.6"

Khetha kuphela eyodwa yezindlela ngezansi ukuze kukhishwe nesakhiwo itafula equkethwe e .frm:

1° Indlela | Online

1. Vakashela i-website https://recovery.twindb.com/;
2. Clique akukho imenyu “Buyisa Sakhiwo” sabe “kufayela .frm“;
3. Chofoza inkinobho “Isiphequluli…” bese ukhetha ifayela lakho .frm; e
4. Chofoza inkinobho “Layisha” futhi indalo ithebula script liyavela esibukweni.

Ungathumela amafayela .frm amaningi ekwakheni kanye script olulodwa nabo bonke amathebula. Nje wena ukudala .zip nazo zonke .frm yayo ngaphambi “Isiphequluli / Layisha”.

2° Indlela | usebenzisa –zokuxilonga

/* isibonelo abajwayelekile */
   mysqlfrm -diagnostic "<umthombo / indlela>/mytable.frm" > "<destination / indlela / recovered_mytable.sql>"
 
/* Isibonelo practice ithebula WordPress wp_posts.frm */
   mysqlfrm --zokuxilonga "C:\wamp  bin  mysql  mysql5.6.17  idatha  meubanco  wp_posts.frm" > "C:\recovered_wp_posts.sql"

3° Indlela | usebenzisa –iseva

/* isibonelo abajwayelekile */
  mysqlfrm -server=izimpande:mypassword@localhost -port=3311 "<umthombo / indlela>/mytable.frm" > "<destination / indlela>/recovered_mytable.sql"
 
/* Isibonelo practice ithebula WordPress wp_posts.frm */
  mysqlfrm --iseva=izimpande@localhost --Imbobo=3307 ""C:\wamp  bin mysql\mysqld.6.17\idatha  meubanco  wp_posts.frm" > "C:\recovered_wp_posts.SQL"

Ungayisebenzisi i-MySQL port! Khetha noma yimiphi eminye etholakalayo. Qaphela ukuthi umyalo uyisa okuphumayo ifayela .sql elilondolozwe endleleni esibekiwe (akukho cala, C:).

isinyathelo 2: Lokuphinda itafula database wakho

In database entsha, ukudala itafula script lwashukumisa Step 1. Mina uqobo efakwe inguqulo ehlanzekile WampServer futhi asetshenziswa phpmyadmin (http://localhost / phpmyadmin /) ukudala database futhi ungenise script SQL wadala isinyathelo 1 (recovered_wp_posts.sql). Lokhu script kuzodala 2 amafayela lwemibhalo wakho database MySQL:

  SUA_TABELA.frm
  SUA_TABELA.idb

Esimweni sami, la mafayela badalwa C:\wamp64 bin mysql mysql5.7.14 idatha<MYDATABASE.GDB>. ngamanye amazwi, ukucinga ukufakwa yakho MySQL futhi uqaphele ukuthi lwemibhalo idatha kukhona database kanye amafayela ababili abashiwo ngamagama.

isinyathelo 3: Susa ifayela entsha .idb

Ukuze ususe ifayela entsha .idb, run umyalo olandelayo SQL:

/* isibonelo abajwayelekile */
  Alter UMDWEBO ekilasini LAHLA TABLESPACE;
 
/* Isibonelo practice ithebula WordPress wp_posts */
  Alter UMDWEBO wp_posts LAHLA TABLESPACE;

Este Comando susa o isixhumanisi entre a tabela e o tablespace (Bakuphi ngokomzimba egcinwe amafayela database), futhi ususe ifayela .idb.

isinyathelo 4: Kopisha ifayela elidala .idb

I original ifayela .idb (equkethe idatha) izidingo okufanele siwulingise ukuze endaweni ka .idb yasuswa ngo Step 3. Sebenzisa Ctrl + C no Ctrl + V noma aze abulale ezinye umugqa wemiyalo.

isinyathelo 5: Phinda ithebula

Isixhumanisi ephukile Step 3 Udinga ukuba ezibuyiselwe umyalo olandelayo:

/* isibonelo abajwayelekile */
  Alter UMDWEBO ekilasini UKUNGENISA TABLESPACE;
 
/* Isibonelo practice ithebula WordPress wp_posts */
  Alter UMDWEBO wp_posts UKUNGENISA TABLESPACE;

Ungakhathazeki uma uthola ezinye izixwayiso, Nokho, kungase kube ukuthi ufuna ukunikeza kokuwohloka okubonisa iphutha ezilandelayo:

  #1808 - schema lokungafani (Ithebula has ROW_TYPE_DYNAMIC irowu yohlelo, .ifayela ibd has ROW_TYPE_COMPACT irowu format.)

kuleli cala, lokhu kwenzeka ngenxa ngendlela ehlukene ukuthi mysql5.7.14 (NEW) kudala etafuleni ezenzakalelayo maqondana Mysql-06/05/17 (Antique), SEM o ROW_FORMAT = icwecwe.

ke, uma usebenzisa MySQL> = the mysql5.7.14, konke okudingeka ukwenze nje ukwengeza ROW_FORMAT = icwecwe in ithebula indalo definition.

  DALA UMDWEBO `wp_posts` (. . .) NENJINI=InnoDB ROW_FORMAT=icwecwe

ezinye amaphutha

Just for the record, ngaphambi imphumelelo .frm idatha isizinda, Kwadingeka ezinye amaphutha:

  # Source on localhost: ... ixhunyiwe.
  # Ukuqala iseva okubangelwa on port 3304 ... Elizama ayeke kuhlulekile iseva eyaqanjwa.  id Process = 6648.
  IPHUTHA: Operation iseva Spawn kuhlulekile. Iphutha leseva Clone: Engakwazi ukuxoxa ngalolu new Ngokwesibonelo. id Process = 6648.. ukuxilonga, run Umbuso indawo futhi bese ukusetshenziswa the --verbosity option ukubuka imiyalezo evela server okubangelwa futhi alungise noma yimaphi amaphutha wethule bese ugijime Umbuso indawo aphinde.
  IMPUMELELO: Inqubo nge PID 6648 (Ingane inqubo PID 7264) inqanyuliwe.
Traceback (ucingo yamuva iningi lokugcina):
  Ifayela "G:\ade  ukwakha  sb_0-19921351-1470074463.97  Python-2.7.6-windows-x86-64bit  lib  site-amaphakheji  cx_Freeze  initscripts  Console.py", umugqa 27, e <module>
  Ifayela "scripts\mysqlfrm.py", umugqa 422, e <module>
  Ifayela ".\mysql\utilities\command\read_frm.py", umugqa 439, e read_frm_files
  Ifayela ".\mysql\utilities\command\read_frm.py", umugqa 166, e _spawn_server
  Ifayela ".\mysql\utilities\command\serverclone.py", umugqa 180, e clone_server
  Ifayela ".\mysql\utilities\common\tools.py", umugqa 273, e get_mysqld_version
IOError: [Errno 13] Imvume inqatshelwe: 'Version_check'

Endabeni ethize WordPress, udinga ukususa script esabangela SQL etholwe .frm, bonke ezikuwo 'WEHLULEKA ‘0000-00-00 00:00:00', kungenjalo, uyobanjwa isiphambeko:

  #1067 - inani elimisiwe (ezenzakalelayo) engavumelekile 'COMMENT_DATE'

ukuthi!

imithombo

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

Imininingwane zokungena: 14898

10 Izibuyekezo “Phinda MySQL amathebula lapho kuphela .frm namafayela .ibd ayatholakala

  1. Rodrigo wathi:

    Okufanele ukwenze uma ubona iphutha umyalezo olandelayo: #1815 – iphutha langaphakathi. Ayikwazi ukusetha kabusha LSNs kuthebula “MYDATABASE.GDB”.”minhatabela”: isakhiwo Data inkohlakalo.
    Kungenzeka ukuba enze idatha ngesandla ifaka? Indlela yokukwenza?
    Ngiyabonga.

  2. Cristian U wathi:

    Hi Taylor,

    How did you solve this error:
    IPHUTHA: Operation iseva Spawn kuhlulekile. Iphutha leseva Clone: Ayikwazi ukuxhumana ne isenzakalo esisha. id Process = 6648.. ukuxilonga, run the utility again and use the –verbosity option ukubuka imiyalezo evela server okubangelwa futhi alungise noma yimaphi amaphutha wethule bese ugijime Umbuso indawo aphinde.
    IMPUMELELO: Inqubo nge PID 6648 (Ingane inqubo PID 7264) inqanyuliwe.

    I keep receiving the same message and I don´t know how to solve it.

    Thanks

Shiya impendulo

Ikheli lakho le ngeke ishicilelwe. Ezidingekayo ibhalwe nge *