MySQL કોષ્ટકો પુનઃપ્રાપ્ત જ્યારે માત્ર .frm અને .ibd ફાઈલો ઉપલબ્ધ છે

કેવી રીતે હલ કરવા માટે “MySQL ભૂલ #1146 - ટેબલ અસ્તિત્વમાં નથી” ફાઇલો ખસેડીને કારણે .idb (InnoDB) સીધા ડિરેક્ટરીઓ વચ્ચે (કોષ્ટક).

logo_mysql

સમસ્યા

ઘણી સમસ્યાઓ અમે સમસ્યાઓ અમે બનાવવા ધરાવે છે. હું માત્ર વર્ડપ્રેસ અને વિચાર મદદથી વેબસાઇટ બનાવવા માગતા: આવા જુઓ આ કેવી રીતે PHP માં કામ કરે છે 7? ઠીક છે, મારા WampServer વપરાય PHP કારણ કે 5.6, પછી હું પડી હતી “ખુશ” વિચાર સુધારવા માટે WampServer 2.5 (અપાચે-2.4.9, MySQL-5.6.17, Php5.5.12) માટે WampServer 3.0.6 (Apache2.4.23, Mysql5.7.14, Php5.6.25 અને Php 7.0.10).

સ્પષ્ટ, હું બેકઅપ દ્વારા શરૂ, પરંતુ મારા મોટા misstep એસક્યુએલ જેમ સાઇટ નિકાસ ન કરવાનું પસંદ કરવામાં આવી હતી, તેના બદલે, ફક્ત MySQL ફાઇલો કૉપિ બનાવી (MySQL / ડેટા) અને એપ્લિકેશન (www / સાઇટ). હું વિશ્વાસ તે કામ કરશે હતી, પહેલાં.

PHP સાથે નવા WampServer ઇન્સ્ટોલ કર્યા પછી 7, હું MySQL બેકઅપ ફાઈલો અને અરજી ત્યાં પાછા મૂકવા, ત્યારે જ હું બ્રાઉઝર પરીક્ષણ કરવામાં આવ્યું હતું, દેખાયા ન સાઇટ, પરંતુ વર્ડપ્રેસ સ્થાપન સ્ક્રીન તરીકે જો તે નવી વેબસાઇટ હતા. જેલી! ઓપન PHPMyAdmin જોવા માટે ડેટાબેઝ ઠીક હતું અને જોયું કે, ડેટાબેઝ યાદી હોવા છતાં, જ્યારે ડેટા જોવા માટે ટેબલ પર ક્લિક નીચેની ભૂલ સંદેશો દેખાય છે:

  MySQL ભૂલ #1146 - ટેબલ <TABLE_NAME> અસ્તિત્વ ધરાવતું નથી

હું શોધ કરવામાં આવી છે અને મને આ વાતની ખબર છે કે તમે માત્ર કૉપિ કરો અથવા ફાઇલો અન્ય MySQL MySQL ડિરેક્ટરી સીધા ખસેડવા જો ફાઇલો પ્રકાર MyISAM કરી શકો છો, વિસ્તરણ .frm .MYD .MYI સાથે તે. હું ખરેખર ખબર નથી શું થયું, પરંતુ મારા ડેટાબેઝ InnoDB તરીકે દેખા (.frm ઈ .idb). કમનસીબે, પછી જ ઘટના MySQL દસ્તાવેજીકરણ જોયું પહેલેથી ચેતવણી આપી:

  તમે મુક્તપણે ખસેડી શકતા નથી .ડેટાબેઝ ડિરેક્ટરીઓ વચ્ચે IBD ફાઇલો કારણ કે તમે MyISAM ટેબલ ફાઇલો સાથે કરી શકો છો. 
  ટેબલ વ્યાખ્યા InnoDB વહેંચાયેલ કોષ્ટક સંગ્રહિત ડેટાબેઝ નામ સમાવેશ થાય છે. 
  વ્યવહાર ID અને પ્રવેશ ક્રમ કોષ્ટક ફાઇલો સંગ્રહિત નંબરો પણ ડેટાબેઝ વચ્ચે અલગ પડે છે.

ઉકેલ

હું કેટલાક સરળ ઉકેલો કરવા મળી, પરંતુ હું અહીં એક ખરેખર મારા માટે કામ કર્યું વર્ણવે કરશે, જોકે તે અત્યાર સુધી વધુ જટિલ લાગે, પોસ્ટ ન મળી “પુનર્સ્થાપિત કરી ટેબલ(ઓ) માયએસક્યુએલ ડેટાબેઝ જ્યારે frm અથવા IBD ફાઇલો જ ઉપલબ્ધ છે“.

પહેલાં, તેમ છતાં, જ્ઞાન માર્ગ દ્વારા, તે InnoDB સરખામણીમાં કે યાદ વર્થ છે, MySQL .ibd માં .frm ફાઈલો અને ડેટાને તેના માળખું રાખે. પૂરતી સિદ્ધાંત, નીચે વિચાર દે!

પગલું 1: .frm માળખું ફરીથી બનાવવા

કારણ કે મેં કહ્યું, .frm કોષ્ટકની સંરચનાને સમાવે. પ્રથમ અમે લોકપ્રિય ડેટા પછી માળખું અને પછી પુનઃપ્રાપ્ત કરવાની જરૂર. તમે તે કરી શકો છો 3 વિવિધ પદ્ધતિઓ નીચે વર્ણવેલ, પહેલા વધુ, મને તમે વિશે કંઈક કહેવા દો “MySQL ઉપયોગીતાઓ”.

MySQL ઉપયોગીતાઓ | mysqlfrm

તમે સૂચિત પદ્ધતિ વાપરવા માટે ઇરાદો ન હોય તો 1 (ઑનલાઇન) પછી તમે સાધન ઉપયોગ કરવાની જરૂર “mysqlfrm” દ્વારા પૂરી પાડવામાં આવેલ “MySQL ઉપયોગીતાઓ“.

આ સાધન માહિતી માળખું બહાર કાઢે છે અને ટેબલ બનાવવા માટે એસક્યુએલ સ્ક્રિપ્ટ જનરેટ કરશે. આ માટે, ડાઉનલોડ “MySQL ઉપયોગીતાઓ” (MySQL-1.6.4-winx64.msi-ઉપયોગિતાઓ કંઈક) અને ઇન્સ્ટોલ-O.

કન્સોલ ખોલો (આદેશ / ઓફ) અને CD આદેશ વાપરો ડિફૉલ્ટ ઇન્સ્ટોલેશન નિર્દેશિકા ખસેડવા (સી કંઈક:\Program Files MySQL MySQL ઉપયોગીતાઓ 1.6\). નોંધ કરો કે તે ડિરેક્ટરી અંદર એક્ઝિક્યુટેબલ છે mysqlfrm.exe.

  સીડી "C:\Program Files  MySQL  MySQL ઉપયોગીતાઓ 1.6"

.frm સમાયેલ કોષ્ટકની સંરચનાને કાઢવા માટે નીચે પદ્ધતિઓ માત્ર એક પસંદ કરો:

1પદ્ધતિ નં | ઑનલાઇન

1. વેબસાઇટની મુલાકાત લો https://recovery.twindb.com/;
2. કોઈ મેનુ ટોળકીએ “માળખું પુનઃપ્રાપ્ત” અને પછી “.frm ફાઇલમાંથી“;
3. બટન પર ક્લિક કરો “બ્રાઉઝર…” અને તમારા .frm ફાઇલ પસંદ; ઈ
4. બટન પર ક્લિક કરો “અપલોડ કરો” અને ટેબલ બનાવટ સ્ક્રિપ્ટ સ્ક્રીન પર દેખાય છે.

તમે એકવાર બધા કોષ્ટકો સાથે એક સ્ક્રિપ્ટ બનાવવામાં સમયે બહુવિધ .frm મોકલી શકો છો. જસ્ટ તમે તેના તમામ .frm પહેલાં સાથે ઝિપ બનાવી દેવા માટે “બ્રાઉઝર / અપલોડ કરો”.

2પદ્ધતિ નં | મદદથી –તપાસ

/* ઉદાહરણ જેનરિક */
   mysqlfrm -diagnostic "<સ્ત્રોત / path>/mytable.frm" > "<ગંતવ્ય / path / recovered_mytable.sql>"
 
/* સાથે વર્ડપ્રેસ ટેબલ wp_posts.frm ઉદાહરણ પ્રથા */
   mysqlfrm --તપાસ "C:\wamp\bin\mysql\mysql5.6.17\data\meubanco\wp_posts.frm" > "C:\Recovered_wp_posts.sql"

3પદ્ધતિ નં | મદદથી –સર્વર

/* ઉદાહરણ જેનરિક */
  mysqlfrm -server=રુટ:mypassword@localhost -port=3311 "<સ્ત્રોત / path>/mytable.frm" > "<ગંતવ્ય / path>/recovered_mytable.sql"
 
/* સાથે વર્ડપ્રેસ ટેબલ wp_posts.frm ઉદાહરણ પ્રથા */
  mysqlfrm --સર્વર=રુટ@localhost --બંદર=3307 ""સી:\wamp\bin\MySQL\mysqld.6.17\data\meubanco\wp_posts.FRM" > "સી:\recovered_wp_posts.SQL"

MySQL પોર્ટ ઉપયોગ કરશો નહીં! કોઈપણ અન્ય ઉપલબ્ધ પસંદ કરો. નોંધ કરો કે આદેશ જે ઉલ્લેખિત પાથ સાચવવામાં આવે છે SQL ફાઇલ આઉટપુટ રીડાયરેક્ટ કરે (કોઈ કિસ્સામાં, સી:).

પગલું 2: તમારા ડેટાબેઝ ટેબલ ફરીથી બનાવવા

નવી ડેટાબેઝમાં, પગલું પેદા સ્ક્રિપ્ટ સાથે એક ટેબલ બનાવો 1. હું અંગત રીતે WampServer ચોખ્ખાઇ સંસ્કરણ ઇન્સ્ટોલ અને Phpmyadmin વપરાય (HTTP://localhost / phpMyAdmin /) ડેટાબેઝ બનાવવા અને પગલું માં બનાવેલ એસક્યુએલ સ્ક્રિપ્ટ આયાત કરવા 1 (recovered_wp_posts.sql). આ સ્ક્રિપ્ટ બનાવશે 2 તમારા MySQL ડેટાબેઝના ડિરેક્ટરીમાં ફાઇલોને:

  SUA_TABELA.frm
  SUA_TABELA.idb

મારા કિસ્સામાં, આ ફાઇલો માં બનાવવામાં આવી હતી સી:\wamp64 બિન MySQL mysql5.7.14 માહિતી <MYDATABASE.GDB>. બીજા શબ્દોમાં કહીએ તો, તમારા MySQL સ્થાપન માટે જુઓ અને તે નિર્દેશિકાને નોંધો માહિતી ડેટાબેઝ અને બે જણાવેલી ફાઇલો હશે.

પગલું 3: નવી .idb ફાઇલ દૂર કરો

નવી .idb ફાઈલ દૂર કરવા માટે, નીચેના એસક્યુએલ આદેશ ચલાવો:

/* ઉદાહરણ જેનરિક */
  ALTER કોષ્ટક mytable નિકાળો કોષ્ટક;
 
/* વર્ડપ્રેસ ટેબલ wp_posts સાથે ઉદાહરણ પ્રથા */
  બદલી કોષ્ટક wp_posts નિકાળો કોષ્ટક;

એસ્ટે comando ઓ કડી ખાનગી દૂર tabela ઈ ઓ કોષ્ટક (જ્યાં તેઓ શારીરિક ડેટાબેસ ફાઇલોને સ્ટોર કરવામાં આવે છે), અને ફાઈલ દૂર .idb.

પગલું 4: જૂના .idb ફાઇલ કૉપિ

મૂળ ફાઇલ .idb (જે ડેટા ધરાવે છે) તમે .idb જગ્યાએ જે પગલું કાઢી નાખવામાં આવ્યો હતો પર કૉપિ કરવાની જરૂર 3. Ctrl + C અને Ctrl + V અથવા પણ કમાન્ડ લાઇન મારવા ઉપયોગ.

પગલું 5: ટેબલ પુનઃસક્રિય

પગલું માં તૂટેલા કડી 3 તમે નીચેની આદેશ સાથે પુનઃસ્થાપિત કરવાની જરૂર:

/* ઉદાહરણ જેનરિક */
  ALTER કોષ્ટક mytable આયાત કોષ્ટક;
 
/* વર્ડપ્રેસ ટેબલ wp_posts સાથે ઉદાહરણ પ્રથા */
  બદલી કોષ્ટક wp_posts આયાત કોષ્ટક;

ચિંતા કરશો નહીં, જો તમે અમુક ચેતવણીઓ વિચાર, તેમ છતાં, નીચેની ભૂલ દર્શાવે સામાન્ય વિરામ આપવા હોઈ શકે:

  #1808 - સ્કીમા મિસમેચ (કોષ્ટક ROW_TYPE_DYNAMIC પંક્તિ ફોર્મેટ ધરાવે, .IBD ફાઈલ ROW_TYPE_COMPACT પંક્તિ ફોર્મેટ ધરાવે છે.)

આ કિસ્સામાં, આ કારણે અલગ રીતે કે mysql5.7.14 થયું (નવી) MySQL-6.5.17 સંબંધમાં મૂળભૂત ટેબલ બનાવે (OLD), SEM ઓ ROW_FORMAT = કોમ્પેક્ટ.

પછી, જો તમે MySQL ઉપયોગ કરી રહ્યા છો> mysql5.7.14 =, બધા તમે શું કરવાની જરૂર છે ટેબલ બનાવટ વ્યાખ્યામાં ROW_FORMAT = કોમ્પેક્ટ ઉમેરી છે.

  કોષ્ટક બનાવો `wp_posts` (. . .) ENGINE=InnoDB ROW_FORMAT=કોમ્પેક્ટ

અન્ય ભૂલો

જસ્ટ રેકોર્ડ માટે, .frm માહિતી નિષ્કર્ષણ સફળ થવા પહેલાં, હું કેટલાક ભૂલો કરી હતી:

  # localhost પર સોર્સ: ... જોડાયેલ.
  # પોર્ટ પર પેદા સર્વર શરૂ કરી રહ્યા છીએ 3304 ... ERROR નિષ્ફળ પેદા સર્વર બંધ કરવાનો પ્રયાસ.  પ્રક્રિયા id = 6648.
  ERROR: માછલી સર્વર ઑપરેશન નિષ્ફળ થયું. ક્લોન સર્વર ભૂલ: સાથે વાર્તાલાપ કરવામાં અક્ષમ નવી ઉદાહરણ. પ્રક્રિયા ID = 6648.. નિદાન, ઉપયોગિતા ફરીથી ચલાવો અને વાપરવુ--પેદા સર્વરમાંથી સંદેશાઓ જોવા અને સુધારવા પછી પ્રસ્તુત કોઈપણ ભૂલો ઉપયોગિતા ફરી ચલાવવા માટે વર્બોઝીટી વિકલ્પ.
  SUCCESS: PID સાથે પ્રક્રિયા 6648 (PID ની બાળક પ્રક્રિયા 7264) સમાપ્ત કરવામાં આવ્યું છે.
ટ્રેસબેક (મોટા ભાગના તાજેતરના કૉલ છેલ્લા):
  ફાઇલ "G:\એડીઇ  બિલ્ડ  sb_0-19921351-1470074463.97  અજગર 2.7.6-વિન્ડોઝ x86-64bit  lib  સાઇટ પેકેજો  cx_Freeze  initscripts  Console.py", રેખા 27, માં <મોડ્યુલ>
  ફાઇલ "scripts\mysqlfrm.py", રેખા 422, માં <મોડ્યુલ>
  ફાઇલ ".\mysql\utilities\command\Read_frm.py", રેખા 439, read_frm_files માં
  ફાઇલ ".\mysql\utilities\command\Read_frm.py", રેખા 166, _spawn_server માં
  ફાઇલ ".\mysql\utilities\command\serverclone.py", રેખા 180, clone_server માં
  ફાઇલ ".\mysql\utilities\common\ટીools.py", રેખા 273, get_mysqld_version માં
IOError: [Errno 13] પરવાનગી નકારી: 'Version_check'

વર્ડપ્રેસ ચોક્કસ કિસ્સામાં, તમે સ્ક્રિપ્ટ કે એસક્યુએલ .frm મેળવેલી પેદા દૂર કરવાની જરૂર છે, 'ડિફોલ્ટ તરીકે તમામ એન્ટ્રીઓ ‘0000-00-00 00:00:00', અન્યથા, ભૂલ પકડી કરશે:

  #1067 - ડિફૉલ્ટ મૂલ્ય (મૂળભૂત) 'COMMENT_DATE' માટે અમાન્ય

કે!

સૂત્રોના

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

હિટ કુલ સંખ્યા: 21446

12 સમીક્ષાઓ “MySQL કોષ્ટકો પુનઃપ્રાપ્ત જ્યારે માત્ર .frm અને .ibd ફાઈલો ઉપલબ્ધ છે

  1. રોડરીગો જણાવ્યું હતું કે:

    શું કરવું જ્યારે તમે નીચેનો ભૂલ સંદેશો જોવા: #1815 – આંતરિક ભૂલ. કોષ્ટકમાં LSNs રીસેટ કરી શકતા નથી “MYDATABASE.GDB”.”minhatabela”: માહિતી માળખું ભ્રષ્ટાચાર.
    તે શક્ય માહિતી જાતે દાખલ કરવા માટે છે? તે કેવી રીતે કરવું તે?
    હું તમને આભાર.

  2. kimo જણાવ્યું હતું કે:

    હું માત્ર તમે એક મોટી એફ ** રાજા આભાર આપવા માંગો છો YOUUUUUUU. તમે મારા જીવન વરણાગિયું માણસ બચાવી!!!!!

  3. ક્રિસ્ટિઅન યુ જણાવ્યું હતું કે:

    હાય ટેલર,

    તમે કેવી રીતે આ ભૂલ હલ નહોતી:
    ERROR: માછલી સર્વર ઑપરેશન નિષ્ફળ થયું. ક્લોન સર્વર ભૂલ: નવી ઉદાહરણ સાથે વાતચીત કરવા માટે અસમર્થ. પ્રક્રિયા id = 6648.. નિદાન, ઉપયોગિતા ફરી ચલાવવા અને ઉપયોગ –પેદા સર્વરમાંથી સંદેશાઓ જોવા અને સુધારવા પછી પ્રસ્તુત કોઈપણ ભૂલો ઉપયોગિતા ફરી ચલાવવા માટે વર્બોઝીટી વિકલ્પ.
    SUCCESS: PID સાથે પ્રક્રિયા 6648 (PID ની બાળક પ્રક્રિયા 7264) સમાપ્ત કરવામાં આવ્યું છે.

    હું જ સંદેશ પ્રાપ્ત રાખવા અને હું તે કેવી રીતે હલ કરવા માટે ખબર નથી.

    આભાર

    • હાય, તમે પ્રથમ પદ્ધતિનો ઉપયોગ કરીને પ્રયાસ કરી શકો છો (https://recovery.twindb.com/) ઉપર વર્ણવ્યા. MySQL પોર્ટ ઉપયોગ કરે છે અને તમારા .frm એસક્યુએલ કોઇ 'મૂળભૂત' 0000-00-00 દૂર કરશો નહિ 00:00:00'.

  4. JOTHA જણાવ્યું હતું કે:

    કોમરેડ મહાન પોસ્ટ.

    સ્પષ્ટ, સંક્ષિપ્ત, સંપૂર્ણ અને વિશ્વસનીય.

    તે ઘણો મદદ કરી.

  5. જોઆઓ ફેલિપ જણાવ્યું હતું કે:

    માર્ગ… અભિનંદન…
    તે મારા માટે અહીં કામ કર્યું!
    ખૂબ સારું ટ્યુટોરીયલ….

  6. Reginaldo Luiz de Freitas જણાવ્યું હતું કે:

    અભિનંદન ટેલર, પરંતુ ભાષાની અશક્ય!! તમે એક જ વ્યક્તિ છે!

    આલિંગન અને તમારા અનુભવ શેર કરવા માટે આભાર!

એક જવાબ છોડો

તમારું ઇમેઇલ સરનામું પ્રકાશિત કરવામાં આવશે નહીં. જરૂરી ક્ષેત્રો સાથે ચિહ્નિત થયેલ છે *