ብቻ .frm እና .ibd ፋይሎች ይገኛሉ ጊዜ የ MySQL ሠንጠረዦች Recover

መፍታት የሚቻለው እንዴት ነው? “የ MySQL ስህተት #1146 - የርዕስ ማውጫ የለም” ፋይሎችን በመውሰድ ምክንያት .idb (InnoDB) በቀጥታ ማውጫዎች መካከል (tablespace).

logo_mysql

ችግር

ችግሮች መካከል ብዙዎቹ እኛ ለመፍጠር ችግሮች ናቸው አላቸው. እኔ ብቻ የዎርድፕረስ እና ሐሳብ በመጠቀም አንድ ድር ለማዘጋጀት ነበር: እንደ በዚህ ፒኤችፒ ውስጥ እንዴት እንደሚሰራ ለማየት 7? እሺ, የእኔ WampServer ጥቅም ፒኤችፒ እንደ 5.6, ከዚያም እኔ ወደ ነበረበት “ደስተኛ” ሃሳብ ወደ ለማላቅ WampServer 2.5 (Apache-2.4.9, Mysql-5.6.17, Php5.5.12) ለ WampServer 3.0.6 (Apache2.4.23, Mysql5.7.14, Php5.6.25 እና ይመክራቸዋል 7.0.10).

ግልጽ, እኔ ምትኬ ተጀምሯል, ነገር ግን የእኔ ትልቅ ሊነቀሉ የ SQL እንዲህ ጣቢያ ወደ ውጭ ለመላክ መምረጥ ነበር, ይልቅ, ልክ MySQL ፋይሎች ቅጂ አደረገ (mysql / ውሂብ) እና ትግበራ (www / ጣቢያ). እኔ መሥራት ነበር እርግጠኛ ነበር, በፊት እንደ.

ፒኤችፒ ጋር አዲስ WampServer በመጫን በኋላ 7, እኔ ወደ ኋላ እዚያ MySQL የመጠባበቂያ ፋይሎችን እና ማመልከቻ አኖረ, ብቻ እኔ አሳሹን በመሞከር ነበር, ታየ አይደለም ጣቢያ, ነገር ግን የዎርድፕረስ; የመጫኛ ገጹን አዲስ ድረ ይመስል. የፍሬ ገንፎ! ዳታቤዙ እሺ ነበር አየሁ ከሆነ ክፍት PHPMyAdmin ለማየት መሆኑን, ዳታቤዙ የተዘረዘሩትን እየተደረገ ቢሆንም, ውሂብ ለማየት ወደ ጠረጴዛ ላይ ጠቅ ጊዜ የሚከተለውን የስህተት መልእክት ታየ:

  የ MySQL ስሕተት #1146 - ማውጫ <table_name> የለም

እኔ ስፈልግ ነበር እናም እኔ ለመቅዳት ወይም ፋይሎች ዓይነት MyISAM ከሆነ ሌላ MySQL MySQL ማውጫ በቀጥታ ፋይሎቹን መንቀሳቀስ ብቻ እንደሚችል ደርሰውበታል, ቅጥያ .frm .MYD .MYI ጋር ሰዎች. እኔ በእርግጥ ምን እንደሆነ አላውቅም, ነገር ግን የእኔ ጎታ InnoDB ሆኖ ታየ (.frm ኢ .idb). ለማድረግ ባለመቻሉ ያዝናል, ክስተቱ በ MySQL ሰነድ አየሁ ብቻ በኋላ አስቀድሞ ማስጠንቀቂያ:

  አንተ በነጻነት መንቀሳቀስ አይችሉም .የውሂብ ጎታ ማውጫዎች መካከል ታዘዘላት ፋይሎች እንደ እርስዎ MyISAM ሰንጠረዥ ፋይሎች ጋር ይችላሉ. 
  የ InnoDB የተጋራ tablespace ውስጥ የተከማቸ ጠረጴዛ ትርጉም ያለው የውሂብ ጎታ ስም ያካትታል. 
  ግብይቱ መታወቂያዎች እና መዝገብ በ tablespace ፋይሎች ውስጥ የተከማቹ ቅደም ቁጥሮች ደግሞ ጎታዎች መካከል ይለያያል.

መፍትሔ

እኔ አንዳንድ ቀላል መፍትሔ ማድረግ አግኝቷል, ነገር ግን እኔ እዚህ በእርግጥ ለእኔ የሰራው ሰው ለመግለጽ ይሆናል, ይህ እጅግ የበለጠ ውስብስብ ይመስላል ቢሆንም, መለጠፍ አልተገኘም “ወደነበረበት በመመለስ ሰንጠረዥ(s) MySQL ጎታ ውስጥ frm ወይም ታዘዘላት ፋይሎች ብቻ ይገኛሉ ጊዜ“.

በፊት, ቢሆንም, የእውቀት መንገድ, ይህ InnoDB ጋር ሲነጻጸር መሆኑን በማስታወስ ዋጋ ነው, MySQL .ibd ውስጥ .frm ፋይሎች እና ውሂብ ውስጥ ያለውን መዋቅር ይጠብቃል. በቂ ንድፈ, ወደ ታች ለማግኘት ያስችልዎታል!

ደረጃ 1: .frm አወቃቀር ዳግም መፍጠር

እኔ እንዲህ እንደ, .frm አንድ ሰንጠረዥ አወቃቀር ይዟል. በመጀመሪያ እኛ ታዋቂ ውሂብ በኋላ በዚያን ጊዜ ይህ መዋቅር እና መልሰው ማግኘት. አንተ ማድረግ ትችላለህ 3 የተለያዩ ዘዴዎች ከዚህ በታች በተገለጸው, በፊት ተጨማሪ, እኔ እናንተ ስለ አንድ ነገር ልንገራችሁ “MySQL መገልገያዎች”.

MySQL መገልገያዎች | mysqlfrm

እርስዎ የታቀደው ዘዴ ለመጠቀም አስቦ አይደለም ከሆነ 1 (የመስመር ላይ) ከዚያም ወደ መሣሪያ መጠቀም አለብዎት “mysqlfrm” የቀረበው በ “MySQL መገልገያዎች“.

ይህ መሳሪያ ውሂብ መዋቅር ለማውጣት እና ሠንጠረዥ ፍጥረት ለ SQL ስክሪፕት ያመነጫል. ለዚህ, አውርድ “MySQL መገልገያዎች” (mysql-1.6.4-winx64.msi-መገልገያ የሚመስል ነገር) እና ጫን-o.

መሥሪያው ክፈት (ትእዛዝ / የ) እና ነባሪው መጫኛ ማውጫ ማንቀሳቀስ ሲዲ ትእዛዝ ይጠቀሙ (ሲ የሚመስል ነገር:\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 በፊት ጋር .zip መፍጠር መፍቀድ “የአሳሽ / ስቀል”.

2ዘዴ ቁጥር | በመጠቀም –ምርመራ

/* ሁሉን አቀፍ ምሳሌ */
   mysqlfrm -diagnostic "<ምንጭ / ዱካ>/mytable.frm" > "<መድረሻ / መንገድ / recovered_mytable.sql>"
 
/* የዎርድፕረስ ሰንጠረዥ wp_posts.frm ጋር ምሳሌ ልምምድ */
   mysqlfrm --ምርመራ "C:\wamp  ቢን  mysql  mysql5.6.17 ውሂብ   meubanco  wp_posts.frm" > "C:\recovered_wp_posts.sql"

3ዘዴ ቁጥር | በመጠቀም –አገልጋይ

/* ሁሉን አቀፍ ምሳሌ */
  mysqlfrm -server=ሥር:mypassword@localhost -port=3311 "<ምንጭ / ዱካ>/mytable.frm" > "<መድረሻ / ዱካ>/recovered_mytable.sql"
 
/* የዎርድፕረስ ሰንጠረዥ wp_posts.frm ጋር ምሳሌ ልምምድ */
  mysqlfrm --አገልጋይ=ሥር@localhost --ወደብ=3307 "":\wamp  ቢን mysql\mysqld.6.17\ውሂብ  meubanco  wp_posts.frm" > ":\recovered_wp_posts.SQL"

የ MySQL ወደብ አይጠቀሙም! የሚገኙ ማንኛውም ሌላ ይምረጡ. ትእዛዝ በተጠቀሰው መንገድ ላይ ተቀምጧል አንድ .sql ፋይል ወደ ውጽዓት ደብቅ መሆኑን ልብ ይበሉ (ምንም ሁኔታ, ሴ:).

ደረጃ 2: በእርስዎ ጎታ ውስጥ ያለውን ጠረጴዛ ዳግም መፍጠር

አዲስ የውሂብ ጎታ ውስጥ, ደረጃ ውስጥ የተፈጠረውን ስክሪፕት ጋር አንድ ሠንጠረዥ ለመፍጠር 1. እኔ በግሌ WampServer የሆነ ንጹህ ስሪት የጫኑ እና PHPMyAdmin ተጠቅሟል (http://localhost / phpmyadmin /) ደረጃ ውስጥ የተፈጠረው SQL ስክሪፕት ዳታቤዝ መፍጠር እና ለማስመጣት 1 (recovered_wp_posts.sql). ይህ ስክሪፕት ይፈጥራል 2 የ MySQL ጎታ ማውጫ ውስጥ ፋይሎችን:

  SUA_TABELA.frm
  SUA_TABELA.ከአይዲቢ

የእኔን ጉዳይ ውስጥ, እነዚህን ፋይሎች ውስጥ ተፈጥረዋል ሴ:\wamp64 ቢን mysql mysql5.7.14 ውሂብ <MYDATABASE.GDB>. በሌላ አባባል ውስጥ, የ MySQL ጭነት ይፈልጉ እና ማውጫ ያስተውሉ መረጃ የውሂብ ጎታ እና ሁለት የተጠቀሰው ፋይሎች አሉ ይሆናል.

ደረጃ 3: አዲሱ .idb ፋይል አስወግድ

አዲሱ .idb ፋይል ማስወገድ, የሚከተሉትን የ SQL ትእዛዝ አሂድ:

/* ሁሉን አቀፍ ምሳሌ */
  ማማረጫ ማውጫ mytable ጣለው TABLESPACE;
 
/* የዎርድፕረስ ሰንጠረዥ wp_posts ጋር ምሳሌ ልምምድ */
  የርዕስ wp_posts ጣለው TABLESPACE መቀየር;

Este አንድ tabela ሠ o tablespace o አገናኝ entre ማስወገድ comando (እነሱ በአካል ጎታ ፋይሎች የተከማቹ ናቸው የት), ወደ ፋይል ማስወገድ .idb.

ደረጃ 4: አሮጌውን .idb ፋይል ቅዳ

የመጀመሪያው ፋይል .idb (የትኛው ውሂብ ይዟል) እርስዎ ደረጃ ውስጥ ተሰርዟል ይህም .idb ስፍራ ተቀድቷል ያስፈልጋቸዋል 3. Ctrl + C እና Ctrl + V ወይም እንኳ ትዕዛዝ መስመር ለመግደል ይጠቀሙ.

ደረጃ 5: ሰንጠረዥ ዳግም ማግበር

ደረጃ ውስጥ ያለውን የተሰበረ አገናኝ 3 የሚከተሉትን ትእዛዝ ጋር ወደነበሩበት መመለስ ይኖርብናል:

/* ሁሉን አቀፍ ምሳሌ */
  ማማረጫ ማውጫ mytable አስመጪ TABLESPACE;
 
/* የዎርድፕረስ ሰንጠረዥ wp_posts ጋር ምሳሌ ልምምድ */
  ማውጫ wp_posts አስመጣ TABLESPACE መቀየር;

አንዳንድ ማስጠንቀቂያዎችን ማግኘት ከሆነ አትጨነቅ, ቢሆንም, የሚከተሉትን ስህተት የሚያሳይ አጠቃላይ መፈራረስ መስጠት ሊሆን ይችላል:

  #1808 - ብያኔ አለመዛመድ (ሠንጠረዥ ROW_TYPE_DYNAMIC ረድፍ ቅርጸት አለው, .ታዘዘላት ፋይል ROW_TYPE_COMPACT ረድፍ ቅርጸት አለው.)

በዚህ ጉዳይ ላይ, በዚህ ምክንያት mysql5.7.14 የተለያዩ መንገድ ደረሰበት (አዲስ) የ MySQL-6.5.17 ጋር በተያያዘ ያለውን ነባሪ ጠረጴዛ ይፈጥራል (በጥንት ጊዜ), የሴም o ROW_FORMAT = የታመቀ.

እንግዲህ, አንተ MySQL እየተጠቀሙ ከሆነ> ወደ mysql5.7.14 =, እርስዎ ማድረግ ያለብዎት ሰንጠረዥ ፍጥረት ትርጉም ውስጥ የታመቀ ROW_FORMAT = መጨመር ነው.

  ሠንጠረዥ ለመፍጠር `wp_posts` (. . .) ENGINE=InnoDB ROW_FORMAT=የተጠጋጋ

ሌሎች ስህተቶች

ብቻ መዝገብ, .frm ውሂብ ይጥር የተሳካላቸው በፊት, እኔ አንዳንድ ስህተቶች ነበረው:

  # localhost ላይ ምንጭ: ... ተገናኝቷል.
  # ወደብ ላይ የሚፈጠሩ አገልጋይ በመጀመር ላይ 3304 ... ስህተት አልተሳካም የሚፈጠሩ አገልጋይ ለማቆም መሞከር.  ሂደት id = 6648.
  ስህተት: ከሩሲያና የአገልጋይ ክወና አልተሳካም. አባዛ የአገልጋይ ስህተት: ጋር መገናኘት አልተቻለም አዲስ ለምሳሌ. የሂደት መለያ ቁጥር = 6648.. ለመመርመር, እንደገና የመገልገያ ለማስኬድ እና ጥቅም--ቨርቦሲቲ አማራጭ የሚፈጠሩ ከአገልጋይ መልዕክቶችን መመልከት እና ከዚያ ያቀረበው ማንኛውም ስህተቶች እንደገና የፍጆታ አሂድ ለማስተካከል.
  ስኬት: የ PID ጋር ሂደት 6648 (የ PID ስለ ልጅዎ ሂደት 7264) ተቋርጧል.
Traceback (በጣም የቅርብ ጊዜ ጥሪ የመጨረሻ):
  ፋይል "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 ውስጥ ከተገኘው SQL የመነጨ መሆኑን ስክሪፕቱን ማስወገድ አለብዎት, 'እንደ ነባሪ ሁሉንም ግቤቶች ‘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

ጠቅላላ የመጠቀሚያ ጊዜ: 14813

10 ግምገማዎች “ብቻ .frm እና .ibd ፋይሎች ይገኛሉ ጊዜ የ MySQL ሠንጠረዦች Recover

  1. ሮድሪጎ አለ:

    የሚከተሉትን የስህተት መልዕክት ማየት ጊዜ ምን ማድረግ: #1815 – ውስጣዊ ስህተት. ሰንጠረዥ ውስጥ LSNs ዳግም ማስጀመር አልተቻለም “MYDATABASE.GDB”.”minhatabela”: የውሂብ መዋቅር ሙስና.
    የሚቻል እራስዎ ያስገባዋል ውሂብ ለማከናወን ነው? ይህን ማድረግ የሚቻለው እንዴት ነው??
    እኔም አመሰግናለሁ.

  2. kimo አለ:

    ይህን ብቻ ከእናንተ አንድ ትልቅ ረ ** ንጉሥ የምስጋና መስጠት እፈልጋለሁ YOUUUUUUU. አንተ የእኔን ሕይወት የጎብኚዎች ሰፊ ተቀምጧል!!!!!

  3. Cristian U አለ:

    ሠላም ቴይለር,

    ይህን ስህተት መፍታት እንዴት ነበር:
    ስህተት: ከሩሲያና የአገልጋይ ክወና አልተሳካም. አባዛ የአገልጋይ ስህተት: አዲስ ለምሳሌ ጋር መገናኘት አልተቻለም. ሂደት id = 6648.. ለመመርመር, እንደገና የመገልገያ ለማስኬድ እና መጠቀም –ቨርቦሲቲ አማራጭ የሚፈጠሩ ከአገልጋይ መልዕክቶችን መመልከት እና ከዚያ ያቀረበው ማንኛውም ስህተቶች እንደገና የፍጆታ አሂድ ለማስተካከል.
    ስኬት: የ PID ጋር ሂደት 6648 (የ PID ስለ ልጅዎ ሂደት 7264) ተቋርጧል.

    እኔም ተመሳሳይ መልእክት መቀበል መቀጠል እና እኔ እንዴት መፍታት እንደሚቻል ማወቅ መሄዱንም.

    አመሰግናለሁ

አንድ መልስ ውጣ

የእርስዎ ኢሜይል አድራሻ ሊታተም አይችልም. የሚያስፈልጉ መስኮች ጋር ምልክት ነው *