faqat .frm va .ibd fayllar mavjud bo'lsa, MySQL jadvallarni qayta qo'lga

hal qilish uchun qanday “MySQL xato #1146 - Jadval mavjud emas” fayllarni ko'chirish oqibatida .idb (InnoDB) to'g'ridan-to'g'ri katalog o'rtasida (jadval).

logo_mysql

muammo

muammolar ko'p, biz yaratish muammolari turadi. Men faqat WordPress va tafakkur yordamida sayt tayyorlash edi: Bunday u PHP qanday ishlashini ko'rish 7? Ok, mening WampServer ishlatiladigan PHP sifatida 5.6, Bas, men uchun edi “baxtli” g'oya yuksaltirish uchun WampServer 2.5 (Apache-2.4.9, MySQL-5.6.17, Php5.5.12) uchun WampServer 3.0.6 (Apache2.4.23, Mysql5.7.14, Php5.6.25 va PHP 7.0.10).

aniq, Men zaxira tomonidan boshlangan, lekin mening katta misstep SQL bunday sayt eksport qilish emas, balki tanlash edi, o'rniga, uni, faqat MySQL fayllar nusxasini qildi (MySQL / ma'lumotlar) va ariza (www / sayt). Men u ishlaydigan ishonch edi, oldin sifatida.

PHP bilan yangi WampServer o'rnatishdan so'ng 7, Men u erda MySQL zaxira fayllar va ariza qo'yish, Men brauzer sinash faqat, paydo emas Sayt, lekin WordPress o'rnatish ekran yangi veb-sayt go'yo. jele! ma'lumotlar bazasi Ok va ko'rib bo'lsa ochiq, phpMyAdmin ko'rish uchun bu, ma'lumotlar bazasini sanab qaramay, Men ma'lumotlarni ko'rish uchun stolga tıklatıldığında quyidagi xato xabari paydo:

  MySQL xato #1146 - jadval <table_name> mavjud emas

Men izlab qilindi va men sizlar nusxa yoki fayllar turi MyISAM turidagi bo'lsa, yana bir MySQL katalogga bevosita MySQL fayllarni ko'chirish faqat mumkin, deb topilgan, yuqorida .frm .MYD .MYI bilan birga bo'lganlar. Men, albatta, nima bo'ldi bilmayman, lekin mening bazasi InnoDB sifatida paydo bo'ldi (.frm e .idb). afsuski, Tadbir MySQL hujjatlarni ko'rib keyin allaqachon ogohlantirdi:

  Siz erkin harakat qila olmaydi .ma'lumotlar bazasi katalog o'rtasida IBD fayllar sifatida Agar MyISAM turidagi jadval fayllar bilan mumkin. 
  InnoDB birgalikda megabaytlarda saqlanadi stol ta'rifi bazasi nomini o'z ichiga oladi. 
  operatsiya talab qil va log jadval fayllar saqlanadi qatorlar ham ma'lumotlar bazalari o'rtasida farq.

qaror

Men bir necha oddiy hal ko'rish uchun bor, lekin men bu yerda, albatta, men uchun ishlagan bir tasvirlab beradi, u ko'proq kompleksi ko'rinadi bo'lsa-da,, E'lonni topilmadi “tiklash stol(s) MySQL ma'lumotlar bazasida frm yoki IBD fayllar faqat mavjud bo'lsa,“.

oldin, ammo, ilm yo'li bilan, Bu InnoDB nisbatan, deb eslash o'rinlidir, MySQL .ibd yilda .frm fayllar va ma'lumotlar o'z tuzilishini saqlab qoladi. etarli nazariyasi, pastga olish imkonini beradi!

qadam 1: .frm tuzilishini qayta

Aytganimdek, .frm siz jadvalni tizimini o'z ichiga oladi. Birinchidan, biz mashhur ma'lumotlar so'ng o'sha tuzilishi va saqlab qolish uchun kerak. Siz buni mumkin 3 Turli usullar quyida tasvirlangan, oldin ko'proq, meni sizga haqida biror narsa aytib beraman “MySQL Utilities”.

MySQL Utilities | mysqlfrm

Agar taklif usuli bilan ishlatish niyatimiz yo'q bo'lsa 1 (Online) keyin vositasi foydalanish kerak “mysqlfrm” tomonidan taqdim “MySQL Utilities“.

Ushbu avtomobil ma'lumotlar tuzilishini chiqarib va ​​SQL skript stol yaratish hosil qiladi. bu uchun, download “MySQL Utilities” (kabi bir narsa MySQL-kommunal-1.6.4-winx64.msi) va o'rnatish-o.

konsoli oching (buyruq / OF) va standart o'rnatish katalogini ko'chib o'tishga CD buyrug'ini ishlatish (C kabi bir narsa:\Program Files MySQL MySQL Utilities 1.6\). Bu faylga doirasida boriladi hisoblanadi Eslatma mysqlfrm.exe.

  cd "C:\Program Files  MySQL MySQL Utilities 1.6 "

.frm mavjud jadvalni tuzilishini olish uchun quyidagi yo'llar faqat birini tanlang:

1° usuli | Online

1. veb-sayt tashrif buyuring https://recovery.twindb.com/;
2. hech menyusi to'dasini “tarkibi qutqarasan” va keyin “.frm fayldan“;
3. tugmasini bosing “brauzer…” va .frm faylni tanlash; e
4. tugmasini bosing “Yuklab olish” va jadval yaratish skript ekranda paydo.

Siz bir marta barcha jadvallar bilan bitta skriptni yaratishga bir necha .frm fayllar yuborishingiz mumkin. Faqat siz barcha .frm oldin bilan .zip yaratish “Brauzer / upload”.

2° usuli | foydalanish –diagnostika

/* umumiy misol */
   mysqlfrm -diagnostic "<manba / path>/mytable.frm" > "<joy / path / recovered_mytable.sql>"
 
/* WordPress wp_posts.frm stol bilan amalda Misol */
   mysqlfrm --diagnostika "C:\WAMP  bin  mysql  mysql5.6.17 ma'lumotlar   meubanco  wp_posts.frm" > "C:\recovered_wp_posts.sql"

3° usuli | foydalanish –server

/* umumiy misol */
  mysqlfrm -server=ildiz:mypassword esa@localhost -port=3311 "<manba / path>/mytable.frm" > "<joy / path>/recovered_mytable.sql"
 
/* WordPress wp_posts.frm stol bilan amalda Misol */
  mysqlfrm --server=ildiz@localhost --port=3307 ""C:\WAMP  bin mysql\mysql5.6.17\data\meubanco\wp_posts.frm" > "C:\recovered_wp_posts.SQL"

MySQL port foydalanmang! mavjud har qanday boshqa tanlang. buyrug'i belgilangan yo'lga saqlanadi bir .SQL faylga ishlab chiqarish qayta yo'naltirishlar unutmang (hech ishi, C:).

qadam 2: Sizning ma'lumotlar bazasida jadval qayta

Yangi ma'lumotlar bazasida, Step ishlab buyruq fayli bilan bir jadval hosil 1. Men shaxsan WampServer toza versiyasini o'rnatilgan va phpMyAdmin ishlatiladi (http://localhost / phpMyAdmin /) bosqich yaratilgan SQL buyruq fayl ma'lumotlar bazasini yaratish va import qilish 1 (recovered_wp_posts.sql). Bu skript yaratadi 2 Sizning MySQL ma'lumotlar bazasi katalogida fayllar:

  SUA_TABELA.frm
  SUA_TABELA.ITB

Mening holda, Bu fayllar tashkil etildi C:\wamp64 bin mysql mysql5.7.14 Data <MYDATABASE.GDB>. Boshqa so'zlar bilan aytganda, Sizning MySQL o'rnatish qidirish va katalog unutmang, ma'lumotlar u erda bir ma'lumotlar bazasi va ikki fayllar nomidagi.

qadam 3: yangi .idb faylni olib tashlash

yangi .idb faylni o'chirish uchun, Quyidagi SQL buyruqni ishga tushirish:

/* umumiy misol */
  ALTER TABLE jadval BEKOR TABLESPACE;
 
/* WordPress wp_posts stol bilan amalda Misol */
  TABLE wp_posts BEKOR jadval ALTER;

Este bir Tabela e o jadval o link entre olib tashlash COMANDO (Ular jismonan bazasi fayllari saqlanadi qaerda), va faylni olib tashlash .idb.

qadam 4: Eski .idb faylni nusxalash

original fayl .idb (qaysi ma'lumotlarni o'z ichiga olgan) .idb joyiga nusxa bo'lishi kerak, asta-yilda o'chirildi 3. Ctrl + C va Ctrl + V yoki hatto buyruq o'ldirish foydalaning.

qadam 5: jadval qayta yoqish

Step in singan bog'laning 3 Siz quyidagi amri bilan tiklanishi zarur bo'lgan:

/* umumiy misol */
  ALTER TABLE jadval IMPORT TABLESPACE;
 
/* WordPress wp_posts stol bilan amalda Misol */
  Jadval wp_posts IMPORT jadval ALTER;

Agar ba'zi ogohlantirishlar bo'lsin, agar Xavotir olmang, ammo, Quyidagi xato ko'rsatgan umumiy tushkunlik berish mumkin:

  #1808 - Diagramma uyumsuzluğu (Table ROW_TYPE_DYNAMIC Qator formatini ega, .IBD fayl ROW_TYPE_COMPACT qatorga formatini ega.)

Bu holatda, Bu tufayli mysql5.7.14 turli yo'l bilan sodir (NEW) MySQL-06/05/17 nisbatan standart stol yaratadi (Anti), sem o ROW_FORMAT = ixcham.

so'ng, Agar MySQL foydalanayotgan bo'lsangiz> mysql5.7.14 =, Agar barcha qilish kerak jadval yaratish definition ixcham ROW_FORMAT = kiritish emas.

  TABLE CREATE `wp_posts` (. . .) ENGINE=InnoDB ROW_FORMAT=zich

boshqa xatolar

Faqat ro'yxatdan uchun, .frm ma'lumot olish muvaffaqiyatli oldin, Men ba'zi xatolarga yo'l bor edi:

  # localhost Manba: ... ulangan.
  # portiga çatallanabilir server boshlab 3304 ... Xato Failed spawned server to'xtatishga urinishgan.  Process id = 6648.
  ERROR: Spawn server operatsiya barbod. Clone server xatosi: bilan muloqot bo'lmadi yangi misol. Process id = 6648.. tashxis qo'yish uchun, yana yordam dasturini ishga tushirish va foydalanish The --ezmalik variant spawned server xabarlarni ko'rish va keyin taqdim har qanday xatolar yana yordam dasturini ishga tushirish tuzatish uchun.
  SUCCESS: Tos bilan jarayoni 6648 (PID bola jarayoni 7264) bekor qilingan.
Traceback (eng so'nggi qo'ng'iroq, so'nggi):
  Fayl "G:\Ade  qurish  sb_0-19921351-1470074463.97  Python-2.7.6-windows-x86-64bit  lib  sayt-paketlar  cx_Freeze  initscripts  Console.py", chiziq 27, yilda <moduli>
  Fayl "scripts\mysqlfrm.py", chiziq 422, yilda <moduli>
  Fayl ".\mysql\utilities\command\read_frm.py", chiziq 439, read_frm_files yilda
  Fayl ".\mysql\utilities\command\read_frm.py", chiziq 166, _spawn_server yilda
  Fayl ".\mysql\utilities\command\serverclone.py", chiziq 180, clone_server yilda
  Fayl ".\mysql\utilities\common\tools.py", chiziq 273, get_mysqld_version yilda
IOError: [errno 13] Ruxsat berilmadi: "Version_check"

WordPress o'ziga xos holda, Agar .frm olingan SQL hosil skriptni olib tashlash kerak, , Andoza sifatida barcha yozuvlari ‘0000-00-00 00:00:00", aks holda, xato qo'lga qiladi:

  #1067 - default qiymat (default) "Comment_date uchun yaroqsiz

ekan!

manbalar

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

umumiy kirish: 14813

10 sharhlar “faqat .frm va .ibd fayllar mavjud bo'lsa, MySQL jadvallarni qayta qo'lga

  1. Rodrigo dedi:

    quyidagi xato xabar ko'rganingizda nima qilish kerak: #1815 – ichki xato. jadvalda LSNs qayta o'rnatish mumkin emas “MYDATABASE.GDB”.”minhatabela”: Data tuzilishi korruptsiya.
    imkon qo'lda qo'shimchalar ma'lumotlarni bajarish uchun qilingan? buni qanday?
    Men rahmat.

  2. Kristian U dedi:

    Hi Taylor,

    Agar bu xato hal qanday:
    ERROR: Spawn server operatsiya barbod. Clone server xatosi: yangi Masalan bilan muloqot bo'lmadi. Process id = 6648.. tashxis qo'yish uchun, yana yordam dasturini ishga tushirish va ishlatish –ezmalik variant spawned server xabarlarni ko'rish va keyin taqdim har qanday xatolar yana yordam dasturini ishga tushirish tuzatish uchun.
    SUCCESS: Tos bilan jarayoni 6648 (PID bola jarayoni 7264) bekor qilingan.

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

    Thanks

Leave a Reply

Sizning email manzilingiz chop qilinmaydi. Kerakli joylar belgilangan *