استرداد الجداول الخلية عندما تتوفر فقط الملفات و. frm الأمريكتين

كيفية حل “خطأ في الخلية #1146 --الجدول غير موجود” الناجمة عن نقل الملفات.IDB (InnoDB) مباشرة بين الدلائل (بنية تخزين جدولية).

logo_mysql

المشكلة

كثير من المشاكل التي لدينا مشاكل أنشأنا. وكان إنشاء موقع باستخدام وورد فقط، والفكر: حول كيفية رؤية كيف يعمل هذا في بي إتش بي 7? موافق, كما تستخدم وامبسيرفير بي بي 5.6, لذا كان على أن “سعيد” فكرة للترقية WampServer 2.5 (أباتشي 2.4.9, 5.6.17 الخلية, بي إتش بي 5.5.12) من أجل WampServer 3.0.6 (أباتشي 2.4.23, ماي 5.7.14, 5.6.25 بي وبي إتش بي 7.0.10).

بالطبع, بدء تشغيل النسخ الاحتياطي, ولكن لي زلة كبيرة تم اختيار عدم تصدير SQL من هذا الموقع, وبدلاً من ذلك, أدلى به للتو نسخة من ملفات الخلية (الخلية والبيانات) والتطبيق (www/الموقع). واثق من أنها ستعمل, مثل أوقات أخرى.

بعد تثبيت وامبسيرفير جديدة مع بي إتش بي 7, وضع ملفات النسخ الاحتياطي، ويعود التطبيق, فقط عندما ذهبت إلى اختبار بواسطة المستعرض, لم تظهر في الموقع, لكن الشاشة لتركيب وورد كما لو كان موقع جديد. وجمدت! فتح ريس وتحقق لمعرفة ما إذا كانت قاعدة موافق ورأيت أن, وعلى الرغم من كونها مدرجة في قاعدة بيانات, عندما قمت بالنقر فوق على رأس الجدول لعرض البيانات رسالة الإعلام بالخطأ التالية:

  الخلية خطأ #1146 --الجدول <TABLE_NAME> دوسن ' ر موجودة

لقد تم البحث ووجدت للتو أنه يمكنك فقط نسخ أو نقل الملفات مباشرة إلى الخلية الخلية دليل آخر إذا كانت الملفات نوع MyISAM, تلك مع ملحق ملف العلاجات. ميد. مي. أنا لا أعرف ما حدث, ولكن ظهرت قاعدة البيانات الخاصة بي ك InnoDB (.العلاجات و. البنك الإسلامي للتنمية). ولسوء الحظ, فقط بعد حقيقة أن تنبه الخلية الوثائق:

  لا يمكنك نقل بحرية .بنك التنمية بين الأمريكتين الملفات بين الدلائل قاعدة البيانات مثل يمكنك مع ملفات جدول MyISAM. 
  ويشمل تعريف الجدول تخزين جدولية InnoDB المشتركة في اسم قاعدة البيانات. 
  الحركة معرفات و سجل تسلسل الأرقام المخزنة في ملفات جدولية تختلف أيضا بين قواعد البيانات.

الحل

شيجي فير الجوماس soluções البسطاء, ماس فو ديسكريفير هنا البن كيو ريلمينتي فونسيونو الفقرة الفلز, أبيسار دي ما bem ميس كومبليكسا, انكونترادا أي وظيفة “استعادة الجدول(s) في قاعدة بيانات الخلية عندما تتوفر ملفات العلاجات أو بنك التنمية بين الأمريكتين فقط“.

الرهانات المسبقة, ومع ذلك, كونهيسيمينتو دي المسئوليات, فالي ليمبرار كيو م الإدارية ao تيبو InnoDB, الخلية بنية الحرس الخاص بك في الملفات والبيانات في بنك التنمية بين الأمريكتين. frm.. نظرية كافية, دعونا قطع لمطاردة!

الخطوة 1: إعادة إنشاء بنية الملفات. frm

وكما قال, تحتوي العلاجات على بنية الجدول الخاص بك. أولاً نحن بحاجة إلى استرداد هذا الهيكل ثم ملء البيانات. يمكنك القيام بذلك 3 مختلف الأساليب المذكورة أدناه, لكن قبل, واسمحوا لي أن أقول لك شيئا عن “المرافق الخلية”.

المرافق الخلية | ميسقلفرم

إذا كنت لا ترغب في استخدام الأسلوب الأول المقترح (عبر الإنترنت) لذا تحتاج إلى استخدام أداة “ميسقلفرم” التي تقدمها “المرافق الخلية“.

هذه الأداة سوف استخراج بنية البيانات وإنشاء جدول إنشاء البرنامج النصي SQL. لهذا, تحميل “المرافق الخلية” (شيء من هذا القبيل الخلية--المرافق العامة-1.6.4-winx64.msi) وتثبيته.

افتح وحدة تحكم (الأمر / لأن) واستخدم الأمر CD للانتقال دليل التثبيت الافتراضي (شيء من هذا القبيل ج:\المرافق الخلية C:program 1.6\). لاحظ أنه يوجد داخل هذا الدليل القابل للتنفيذ mysqlfrm.exe.

  مؤتمر نزع السلاح "C:\C:Program الخلية المرافق 1.6"

اختر إحدى الطرق أدناه فقط لاستخراج بنية الجدول الخاص بك الموجودة في الملفات. frm:

1º الأسلوب | عبر الإنترنت

1. انتقل إلى موقع ويب HTTPS://recovery.twindb.com/;
2. انقر فوق في القائمة “استرداد بنية” ومن ثم في “ملف العلاجات من.“;
3. انقر فوق الزر “المستعرض…” وحدد ملف العلاجات; و
4. انقر فوق الزر “تحميل” وسيتم عرض البرنامج النصي إنشاء الجدول على الشاشة.

من الممكن إرسال العلاجات ملفات متعددة مرة واحدة توليد نصي واحد مع جميع الجداول. فقط لتمكنك من إنشاء.zip مع جميع ملفي. frm قبل “المستعرض/تحميل”.

2º الأسلوب | باستخدام –التشخيص

/* مثال عامة */
   ميسقلفرم--التشخيص "<المصدر/المسار>/mytable.frm" > "<destination/path/recovered_mytable.sql>"
 
/* المثال في الممارسة مع الجدول wp_posts.frm ورد */
   ميسقلفرم --التشخيص "C:\wampbinmysqlmysql5.6.17datameubancowp_posts.frm" > "C:\recovered_wp_posts.sql"

3º الأسلوب | باستخدام –خادم

/* مثال عامة */
  خادم ميسقلفرم=الجذر:ميباسورد@localhost المنفذ=3311 "<المصدر/المسار>/mytable.frm" > "<مسار الوجهة/>/recovered_mytable.sql"
 
/* المثال في الممارسة مع الجدول wp_posts.frm ورد */
  ميسقلفرم --خادم=الجذر@localhost --منفذ=3307 ""(ج):\wampbinالخلية\MySQL5.6.17\datameubancowp_posts.frm" > "(ج):\recovered_wp_posts.SQL"

لا تستخدم المنفذ الخلية! اختيار أي الأخرى المتاحة. علما بأن الأمر بإعادة توجيه الإخراج إلى ملف.SQL التي يتم حفظها في المسار المحدد (وفي الحالة, (ج):).

الخطوة 2: إعادة إنشاء الجدول في قاعدة البيانات الخاصة بك

في قاعدة بيانات جديدة, إنشاء جدول باستخدام البرنامج النصي الذي تم إنشاؤه في الخطوة 1. أنا شخصيا بتثبيت نسخة نظيفة من WampServer والمستخدمة بريس (http://localhost/بريس/) لإنشاء قاعدة البيانات واستيراد البرنامج النصي SQL التي تم إنشاؤها في الخطوة 1 (recovered_wp_posts.sql). سيتم إنشاء هذا البرنامج النصي 2 الملفات في الدليل الخاص بك قاعدة بيانات الخلية:

  SUA_TABELA.frm SUA_TABELA.البنك الإسلامي للتنمية

في حالتي, تم إنشاء هذه الملفات في (ج):\wamp64binmysqlmysql5.7.14data<مقعد بلدي>. إنترنت إكسبلورر, ابحث عن تركيب الخلية الخاصة بك ولاحظ أنه في الدليل تاريخ وسوف يكون هناك قاعدة البيانات الخاصة بك واثنين من الملفات المذكورة.

الخطوة 3: إزالة ملف.IDB جديدة

لإزالة ملف.IDB جديدة, قم بتشغيل الأمر SQL التالي:

/* مثال عامة */
  تغيير الجدول mytable "تجاهل جدولية";
 
/* المثال في الممارسة مع الجدول wp_posts وورد */
  تغيير الجدول wp_posts "تجاهل جدولية";

يزيل هذا الأمر الارتباط بين الجدول وبنية تخزين جدولية (وحيثما يتم فعلياً تخزين ملفات قاعدة البيانات), وإزالة الملف.IDB.

الخطوة 4: نسخ ملف.IDB القديم

.IDB الملف الأصلي (الذي يحتوي على البيانات) يحتاج ليتم نسخها إلى المكان الذي حصلت على حذف في الخطوة.IDB 3. استخدم Ctrl + C و Ctrl + V، أو تقتل نفسك باستخدام سطر الأوامر.

الخطوة 5: إعادة تنشيط الجدول

الارتباط المقطوع في الخطوة 3 بحاجة إلى أن تتم استعادة باستخدام الأمر التالي:

/* مثال عامة */
  تغيير الجدول mytable "استيراد بنية تخزين جدولية";
 
/* المثال في الممارسة مع الجدول wp_posts وورد */
  تغيير الجدول wp_posts "استيراد بنية تخزين جدولية";

لا تقلق إذا كنت تتلقى بعض التحذيرات, ومع ذلك, قد يكون خلل العام يظهر الخطأ التالي:

  #1808 - عدم تطابق مخطط (يحتوي الجدول على شكل صف ROW_TYPE_DYNAMIC, .بنك التنمية بين الأمريكتين الملف على تنسيق صف ROW_TYPE_COMPACT.)

وفي هذه الحالة, حدث هذا ونظرا لمختلف عن الخلية 5.7.14 (الجديد) يقوم بإنشاء جدول افتراضي مقارنة بالخلية-5.6.17 (القديمة), دون ROW_FORMAT = المضغوط.

حتى, إذا كنت تستخدم الخلية > = 5.7.14, كل ما عليك القيام به إضافة ROW_FORMAT = الاتفاق في تعريف إنشاء الجدول.

  إنشاء الجدول 'wp_posts' (. . .) محرك=Innodb ROW_FORMAT=ضغط

أخطاء أخرى

فقط للسجل, قبل الحصول على النجاح في استخراج البيانات من. frm, كان لي بعض الأخطاء:

  # المصدر على localhost: ... متصل.
  # بدء الملقم ولدت في الميناء 3304 ... حدث خطأ أثناء محاولة إيقاف فشل الملقم الناتجة.  معرف العملية = 6648.
  خطأ: فشلت عملية الخادم البيضة. خطأ في الملقم استنساخ: غير قادر على الاتصال مع الجديد مثيل. معرف العملية = 6648.. لتشخيص, تشغيل الأداة مرة أخرى و استخدام على --الخيار الإسهاب لعرض الرسائل من الملقم الناتجة وتصحيح أية أخطاء قدم ثم قم بتشغيل الأداة مرة أخرى.
  نجاح: هذه العملية مع معرف المنتج 6648 (الطفل عملية PID 7264) تم إنهاء.
Traceback (أحدث استدعاء آخر):
  الملف "G:\adebuildsb_0-19921351-1470074463.97Python-2.7.6-windows-x86-64bitlibsite-packagescx_FreezeinitscriptsConsole.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\tools.py", خط 273, في get_mysqld_version إيورور: [Errno 13] تم رفض الإذن: 'version_check'

في قضية محددة وورد, تحتاج إلى إزالة البرنامج النصي الذي ولدت SQL التي تم إنشاؤها بموجب. 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

إجمالي عدد مرات الدخول: 21479

12 تعليقات على “استرداد الجداول الخلية عندما تتوفر فقط الملفات و. frm الأمريكتين

  1. رودريغو وقال أن:

    ماذا تفعل عندما ترى رسالة الإعلام بالخطأ التالية: #1815 – خطأ داخلي. لا يمكن إعادة تعيين لسنس في الجدول “مقعد بلدي”.”myTable”: تلف في بنية البيانات.
    يمكن تشغيل إدراج البيانات يدوياً? كيفية القيام بذلك?
    منذ فعلا شكرا لك.

  2. كريستيان يو وقال أن:

    مرحبا تايلور,

    كيف يمكنك حل هذا الخطأ:
    خطأ: فشلت عملية الخادم البيضة. خطأ في الملقم استنساخ: غير قادر على الاتصال بمثيل جديد. معرف العملية = 6648.. لتشخيص, تشغيل الأداة مرة أخرى واستخدامها –الخيار الإسهاب لعرض الرسائل من الملقم الناتجة وتصحيح أية أخطاء قدم ثم قم بتشغيل الأداة مرة أخرى.
    نجاح: هذه العملية مع معرف المنتج 6648 (الطفل عملية PID 7264) تم إنهاء.

    لقد تبقى تلقي نفس الرسالة، و don´t معرفة كيفية حل هذه المشكلة.

    شكرا

اترك ردًا

عنوان البريد الإلكتروني الخاص بك لن ينشر. يتم وضع علامة الحقول المطلوبة مع *