மட்டுமே .frm மற்றும் .ibd கோப்புகளை கிடைக்கும் போது MySQL அட்டவணைகள் மீட்க

தீர்க்க எப்படி “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).

தெளிவான, நான் காப்பு மூலம் தொடங்கியது, ஆனால் என் பெரிய தடுமாற்றமும் எல் போன்ற தள ஏற்றுமதி செய்ய முடியாது தேர்வு செய்யப்பட்டார், அதற்கு பதிலாக அதை, வெறும், MySQL கோப்புகளை ஒரு நகல் செய்தார் (MySQL / தரவு) மற்றும் பயன்பாடு (www, / தளத்தில்). நான் வேலை என்று நம்பிக்கை இருந்தது, முன்.

PHP கொண்டு புதிய WampServer நிறுவிய பின் 7, நான் மீண்டும் அங்கு, MySQL கோப்புகளை காப்பு மற்றும் பயன்பாடு வைத்து, நான் உலாவி சோதிக்க போது மட்டும், தோன்றினார் தள, ஆனால் வேர்ட்பிரஸ் நிறுவல் திரையில் ஒரு புதிய இணையதளம் இருந்தது போல். ஜெல்லி! தகவல் சரியா இருந்தது மற்றும் பார்த்தேன் என்றால் திறந்த உதாரணமாக பார்க்க என்று, பட்டியலிடப்பட்ட தகவல் உச்சத்திலும், நான் தரவு பார்வையிட மேஜையில் சொடுக்கும் போது பின்வரும் பிழை செய்தி தோன்றினார்:

  MySQL, பிழை #1146 - மேசை <TABLE_NAME> இல்லை

நான் தேடி கொண்டிருக்கிறேன் மற்றும் நான் நீங்கள் நகலெடுக்க மட்டும் அல்லது கோப்புகளை வகை MyISAM இருந்தால் மற்றொரு, MySQL அடைவு நேரடியாக, MySQL கோப்புகளை நகர்த்த முடியும் என்று கண்டுபிடிக்கப்பட்டது, நீட்டிப்பு .frm .MYD .MYI அந்த. நான் உண்மையில் என்ன நடந்தது என்று எனக்கு தெரியாது, ஆனால் என் தகவல் InnoDB என்ற தோன்றினார் (.FRM இ .idb). துரதிருஷ்டவசமாக, நிகழ்வு MySQL ஆவணத்தில் பார்த்தேன் பிறகு மட்டுமே ஏற்கனவே எச்சரித்துள்ளார்:

  நீங்கள் சுதந்திரமாக செல்ல முடியாது .தகவல் அடைவுகள் இடையே ஐபிடி கோப்புகளை என நீங்கள் MyISAM அட்டவணை கோப்புகளை முடியும். 
  InnoDB என்ற பகிர்வு அட்டவணை சேமிக்கப்படும் அட்டவணை வரையறை தரவுத்தள பெயர் அடங்கும். 
  பரிவர்த்தனை அடையாள பதிவு அட்டவணை கோப்புகளை சேமிக்கப்படும் வரிசை எண்களை கூட தரவுத்தளங்கள் இடையே வேறுபடுகின்றன.

தீர்வு

நான் சில எளிய தீர்வுகளை காண கிடைத்தது, ஆனால் நான் இங்கே உண்மையில் எனக்கு வேலை என்று ஒரு விவரிக்க, இது மிகவும் சிக்கலான தெரிகிறது எனினும், இடுகை காணப்படவில்லை “மீட்கப்படுகிறது அட்டவணை(கள்) MySQL தரவுத்தள FRM அல்லது ஐபிடி கோப்புகளை மட்டுமே கிடைக்கும் போது“.

முன், எனினும், அறிவு மூலம், அது InnoDB என்ற ஒப்பிடும்போது என்று நினைவு மதிப்பு, இந்த MySQL .ibd உள்ள .frm கோப்புகள் மற்றும் தரவு அதன் அமைப்பு வைத்திருக்கிறது. போதுமான கோட்பாடு, கீழே பெற முடியும்!

படி 1: .frm கட்டமைப்பை மீண்டும்

நான் கூறியது போல், .frm உங்கள் அட்டவணையின் கட்டமைப்பை கொண்டுள்ளது. முதலில் நாம் அந்த அமைப்பு பின்னர் மீட்க பிரபலமான தரவு பிறகு வேண்டும். நீங்கள் அதை செய்ய முடியும் 3 வெவ்வேறு முறைகள் கீழே விவரிக்கப்படுகிறது, முன் மேலும், என்னை நீங்கள் பற்றி ஒன்று சொல்ல “MySQL, பயன்பாடுகள்”.

MySQL, பயன்பாடுகள் | mysqlfrm

நீங்கள் முன்மொழியப்பட்ட முறை பயன்படுத்தப் போவதில்லை என்றால் 1 (ஆன்லைன்) பின்னர் நீங்கள் கருவியை பயன்படுத்த வேண்டும் “mysqlfrm” வழங்கப்பட்ட “MySQL, பயன்பாடுகள்“.

இந்த கருவியை தரவு கட்டமைப்பு பிரித்தெடுக்க மற்றும் SQL ஸ்கிரிப்ட் அட்டவணை உருவாக்கம் உருவாக்கும். இந்த, பதிவிறக்க “MySQL, பயன்பாடுகள்” (போன்ற ஏதாவது MySQL-பயன்பாடுகள்-1.6.4-winx64.msi) மற்றும் நிறுவ-ஓ.

பணியகம் திறக்க (கட்டளை / எண்ணிக்கை) மற்றும் இயல்புநிலை நிறுவல் கோப்பகத்தை நகர்த்த cd கட்டளையைப் பயன்படுத்தி (சி போன்ற ஏதாவது:\நிரல் கோப்புகள் , MySQL , MySQL பயன்பாடுகள் 1.6\). என்று அடைவிலுள்ள என்று இயங்கக்கூடிய குறிப்பு mysqlfrm.exe.

  சிடி "C:\நிரல் கோப்புகள் , 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@லோக்கல் ஹோஸ்ட் -port=3311 "<மூல / பாதை>/mytable.frm" > "<இலக்கு / பாதை>/recovered_mytable.sql"
 
/* வேர்ட்பிரஸ் wp_posts.frm அட்டவணை நடைமுறையில் எடுத்துக்காட்டாக */
  mysqlfrm --சர்வர்=ரூட்@லோக்கல் ஹோஸ்ட் --துறைமுக=3307 ""சி:\WAMP  பின் MySQL\mysqld.6.17\தரவு  meubanco  wp_posts.FRM" > "சி:\recovered_wp_posts.SQL"

MySQL, துறைமுக பயன்படுத்த வேண்டாம்! வேறு எந்த கிடைக்கும் தேர்வு. கட்டளை குறிப்பிட்ட பாதையில் சேமிக்கப்படும் என்று ஒரு sql கோப்பை வெளியீடு வழிமாற்றுகளை என்று குறிப்பு (எந்த விஷயத்தில், சி:).

படி 2: உங்கள் தகவல் அட்டவணை மீண்டும்

ஒரு புதிய தகவல், படி உருவாக்கப்படும் ஸ்கிரிப்ட் ஒரு அட்டவணை உருவாக்க 1. நான் தனிப்பட்ட முறையில் WampServer ஒரு சுத்தமான பதிப்பு நிறுவப்பட்ட மற்றும் கால் தேக்கரண்டி உப்பு பயன்படுத்தப்படுகிறது (HTTP://லோக்கல் ஹோஸ்ட் / 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 கட்டளையை இயக்க:

/* பொதுவான உதாரணம் */
  , ALTER டேபிள் mytable நிராகரி அட்டவணை;
 
/* வேர்ட்பிரஸ் wp_posts அட்டவணை நடைமுறையில் எடுத்துக்காட்டாக */
  டேபிள் wp_posts நிராகரி அட்டவணை மாற்ற;

இந்த comando ஒரு அட்டவணை இ ஓ அட்டவணை O இணைப்பு Entre நீக்க (அவர்கள் உடல் தகவல் கோப்புகள் சேமிக்கப்படும் எங்கே), மற்றும் கோப்பு நீக்க .idb.

படி 4: பழைய .idb கோப்பை நகல்

அசல் கோப்பு .idb (இது தரவு கொண்டுள்ளது) படி .idb இடத்திற்கு நகலெடுக்க வேண்டும் நீக்கப்பட்டது 3. CTRL + C மற்றும் Ctrl + V அல்லது கூட கட்டளை வரி கொல்ல பயன்படுத்தவும்.

படி 5: அட்டவணை செயற்படுத்து

படி உடைந்த இணைப்பை 3 நீங்கள் பின்வரும் கட்டளையை மீட்டெடுக்க வேண்டும்:

/* பொதுவான உதாரணம் */
  , ALTER டேபிள் mytable இறக்குமதி அட்டவணை;
 
/* வேர்ட்பிரஸ் wp_posts அட்டவணை நடைமுறையில் எடுத்துக்காட்டாக */
  டேபிள் wp_posts இறக்குமதி அட்டவணை மாற்ற;

நீங்கள் சில எச்சரிக்கைகள் பெற என்றால் கவலை வேண்டாம், எனினும், பின்வரும் பிழை காண்பிக்கப்படுகிறது பொது முறிவு கொடுக்க இருக்கலாம்:

  #1808 - அமைப்பியல் பொருத்தமில்லாமல் (டேபிள் ROW_TYPE_DYNAMIC வரிசையில் வடிவம், .ஐபிடி கோப்பு ROW_TYPE_COMPACT வரிசையில் வடிவமைப்பில் உள்ளது.)

இந்த வழக்கில், இந்த காரணமாக mysql5.7.14 என்று வேறு வழியில் நடந்தது (புதிய) Mysql-06/05/17 தொடர்பாக இயல்புநிலை அட்டவணை உருவாக்குகிறது (பழமையான), செம் ஓ ROW_FORMAT = கச்சிதமான.

பின்னர், நீங்கள் MySQL பயன்படுத்தி இருந்தால்> = mysql5.7.14, நீங்கள் செய்ய வேண்டிய அனைத்து அட்டவணை உருவாக்கம் வரையறை ROW_FORMAT = கச்சிதமான சேர்க்க.

  அட்டவணை உருவாக்க `wp_posts` (. . .) பொறி=InnoDB என்ற ROW_FORMAT=கச்சிதமான

மற்ற பிழைகள்

வெறும் பதிவு, .frm தரவு பிரித்தெடுத்தல் வெற்றி முன், நான் சில தவறுகள் இருந்தது:

  # லோக்கல் ஹோஸ்ட் மூல: ... இணைக்கப்பட்ட.
  # போர்ட்டில் வித்திட்டது சர்வர் தொடங்கி 3304 ... பிழை தோல்வி வித்திட்டது சர்வர் நிறுத்த முயற்சிக்கும்.  செயலாக்க ID = 6648.
  பிழை: ஸ்பான் சர்வர் செயல்பாடு தோல்வி. குளோன் சர்வர் பிழை: தொடர்பு கொள்ள முடியவில்லை புதிய உதாரணமாக. செயலாக்க ID = 6648.. அறுதியிட, மீண்டும் பயன்பாட்டு இயக்க மற்றும் பயன்பாடு தி --வித்திட்டது சர்வரில் இருந்து செய்திகளை காண பின்னர் வழங்கினார் எந்த பிழைகளை மீண்டும் பயன்பாட்டு இயக்க சரி செய்ய வெர்போசிட்டியை விருப்பத்தை.
  வெற்றி: PID என்பது செயல்முறை 6648 (PID ஐக் குழந்தை செயல்முறை 7264) நிறுத்தப்பட்டது.
மீண்டும் கண்டுபிடிக்க (மிக சமீபத்திய அழைப்பு கடந்த):
  கோப்பு "G:\சுற்றிலும் போடப்பட்டுள்ள  உருவாக்க  sb_0-19921351-1470074463.97  பைதான்-2.7.6-ஜன்னல்கள்-x86-64bit  லிபரல்  தளம் தொகுப்புகள்  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: [பிழையை 13] அனுமதி மறுக்கப்பட்டது: 'Version_check'

வேர்ட்பிரஸ் குறிப்பிட்ட வழக்கில், நீங்கள் .frm பெற்று எல் உருவாக்கப்படும் என்று ஸ்கிரிப்ட் நீக்க வேண்டும், 'இயல்புநிலை என அனைத்து உள்ளீடுகளை ‘0000-00-00 00:00:00', இல்லையெனில், பிழை பிடிக்க:

  #1067 - இயல்புநிலை மதிப்பு (இயல்புநிலை) 'உள்ளிடப்பட்டது' தவறான

என்று!

ஆதாரங்கள்

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

மொத்த அணுகுகிறது: 21391

12 விமர்சனங்களை “மட்டுமே .frm மற்றும் .ibd கோப்புகளை கிடைக்கும் போது MySQL அட்டவணைகள் மீட்க

  1. ரொட்ரிகோ கூறினார்:

    நீங்கள் பின்வரும் பிழைச் செய்தி என்ன செய்ய: #1815 – உள்ளார்ந்த பிழை. அட்டவணையில் LSNs மீட்டமைக்க முடியாது “MYDATABASE.GDB”.”minhatabela”: தரவு கட்டமைப்பு ஊழல்.
    அது சாத்தியம் தரவு கைமுறையாக செருகி செய்ய உள்ளது? அதை செய்ய எப்படி?
    நான் உங்களுக்கு நன்றி.

  2. கிரிஸ்டியன் யூ கூறினார்:

    hi டெய்லர்,

    எப்படி நீங்கள் இந்த பிழை தீர்வு கண்டிருப்பார்கள்:
    பிழை: ஸ்பான் சர்வர் செயல்பாடு தோல்வி. குளோன் சர்வர் பிழை: புதிய நிகழ்வை தொடர்பு கொள்ள முடியவில்லை. செயலாக்க ID = 6648.. அறுதியிட, மீண்டும் பயன்பாடு ரன் மற்றும் பயன்படுத்த –வித்திட்டது சர்வரில் இருந்து செய்திகளை காண பின்னர் வழங்கினார் எந்த பிழைகளை மீண்டும் பயன்பாட்டு இயக்க சரி செய்ய வெர்போசிட்டியை விருப்பத்தை.
    வெற்றி: PID என்பது செயல்முறை 6648 (PID ஐக் குழந்தை செயல்முறை 7264) நிறுத்தப்பட்டது.

    இதே செய்தியை பெறப்படும் அதை நான் எப்படி தீர்க்க தெரியும், do not.

    நன்றி

  3. வழி, பொதுவாக நான் வெளியீடுகள் குறித்து உறுதி அளிக்க மாட்டோம், ஆனால் இந்த கருத்து வேண்டும்!

    வாழ்த்துக்கள் என்னை சேமிக்கப்படும்!

    மிகவும் நன்றி!.

  4. Reginaldo Luiz de Freitas கூறினார்:

    parabens டெய்லர், ஆனால் சாத்தியமற்றது நீதிபோதனைக்!! நீங்கள் அதே பையன் உள்ளன!

    அணைப்பு மற்றும் உங்கள் அனுபவத்தை பகிர்ந்து நன்றி!

ஒரு பதில் விடவும்

உங்கள் மின்னஞ்சல் முகவரியை வெளியிடப்பட்ட முடியாது. தேவையான புலங்கள் குறிக்கப்பட்ட *