باعتبارها واحدة من قواعد البيانات الرائدة المتاحة مجانًا ، تعد MySQL خيارًا شائعًا للعديد من تطبيقات الويب. عند تعرضك للإنترنت ، يتعرض تطبيقك لهجمات ضارة. إذا تم اختراق خادمك ، في أحسن الأحوال ، فأنت بحاجة إلى إعادة تثبيت التطبيق ؛ في أسوأ الأحوال ، قد تفقد بياناتك. بالإضافة إلى ذلك ، قد تواجه موقفًا تحتاج فيه إلى ترحيل قاعدة بيانات من خادم إلى آخر.
ما هو استخدام mysqldump؟
لقد قمت بتغطية أداة mysqldump لكل من حالات اختراق الخادم وحالات الترحيل. وتتمثل وظيفتها الأساسية في أخذ قاعدة بيانات MySQL وتفريغها كملف نصي. لكن ليس أي ملف نصي ؛ الملف عبارة عن مجموعة من عبارات SQL.هذه العبارات ، عند تنفيذها ، تعيد بناء قاعدة البيانات إلى الحالة الدقيقة التي كانت عليها عند تنفيذ التفريغ.
استخدم mysqldump لإنشاء عمليات تصدير لقاعدة البيانات كنسخ احتياطية ، أو عند نقل قاعدة البيانات إلى مضيف جديد. في كلتا الحالتين ، سيتم استيراد الملف النصي مرة أخرى إلى خادم قاعدة بيانات MySQL. سيتم تنفيذ جميع عبارات SQL في الملف ، والتي تعيد بناء قاعدة البيانات إلى حالتها الأصلية. لا يستخدم هذا الجزء الأمر mysqldump ، لكنه لن يكون ممكنًا بدون هذه الأداة أيضًا.
تسرد مستندات MySQL طرقًا أخرى لعمل نسخ احتياطية ، ولكن لها عيوب:
- Hotcopying قاعدة بيانات من MySQL Enterprise هي طريقة رائعة لتحقيق هذه النسخ الاحتياطية - إذا كنت لا تمانع في سعر Enterprise.
- قد يكون نسخ أدلة بيانات قاعدة البيانات أمرًا صعبًا عند التنقل عبر أنظمة التشغيل ، حيث ستكون الوجهات مختلفة.
- سيعطيك التصدير إلى ملف نصي محدد المحتوى ، ولكن سيتعين عليك إعادة إنشاء الهيكل.
- يمكنك غالبًا نسخ قواعد البيانات احتياطيًا من برامج واجهة المستخدم الرسومية مثل MySQL Workbench. لكن هذه عملية يدوية. ليس شيئًا يمكنك كتابته أو تضمينه في وظيفة مجمعة.
تثبيت أداة mysqldump
بالنسبة لنظام التشغيل Windows ، راجع إرشاداتنا لتثبيت MySQL على Windows 7 (عملية التثبيت هي نفسها لنظام التشغيل Windows 10). في نظام macOS ، راجع توجيهاتنا لتثبيت MySQL على macOS 10.7 (مرة أخرى ، أقدم ولكن لا يزال قابلاً للتطبيق). يمكن لمستخدمي أنظمة Linux المستندة إلى Ubuntu استخدام الأمر التالي لتثبيت عميل MySQL والأدوات المساعدة:
sudo apt install mysql-client
استخراج تفريغ MySQL
بمجرد التثبيت ، استخدم mysqldump للحصول على نسخة احتياطية كاملة من قاعدة البيانات.
mysqldump -h [اسم مضيف قاعدة البيانات أو IP] -u [اسم مستخدم قاعدة البيانات] -p [اسم قاعدة البيانات] > db_backup.sql
فيما يلي وصف للأعلام المستخدمة في هذا الأمر:
- - h: هذه العلامة هي مضيف قاعدة البيانات. يمكن أن يكون اسم مضيف كامل (على سبيل المثال ، myhost.domain.com) أو عنوان IP. اترك هذا فارغًا إذا قمت بتشغيل الأمر على نفس مضيف خادم MySQL.
- - u: اسم المستخدم الخاص بك.
- - p: إذا قمت بتأمين تثبيت MySQL بشكل صحيح ، فستحتاج إلى كلمة مرور للاتصال. تطالبك هذه العلامة بدون وسيطة بإدخال كلمة مرور عند تنفيذ الأمر. في بعض الأحيان يكون من المفيد توفير كلمة المرور مباشرة كوسيط لهذه العلامة ، على سبيل المثال ، في برنامج نصي احتياطي. لكن في الموجه ، لا يجب عليك ، لأنه إذا تمكن شخص ما من الوصول إلى جهاز الكمبيوتر الخاص بك ، فيمكنه الحصول على كلمة المرور هذه في محفوظات الأوامر.
- > db_backup.sql: هذا الجزء يخبر mysqldump بتوجيه مخرجاته إلى ملف. عادة ، يقوم الأمر بإخراج كل شيء إلى وحدة التحكم ، مما يعني أنك سترى العديد من عبارات SQL على الشاشة. يقوم الرمز > بتمرير الإخراج إلى ملف نصي مسمى. إذا لم يكن هذا الملف موجودًا ، فسيتم إنشاؤه تلقائيًا.
عند الانتهاء ، سيكون لديك ملف. SQL. هذا ملف نصي يحتوي على عبارات SQL. يمكنك فتحه في أي محرر نصوص لفحص المحتويات. إليك تصدير من قاعدة بيانات WordPress يوضح كيفية تجميع هذه الملفات.
الملف مقسم إلى أقسام. يقوم القسم الأول بإعداد الجدول لتعليقات WordPress. يعيد القسم الثاني إنشاء المحتوى في تلك الجداول (في هذا المثال ، يسجل التعليق). عندما تعيد استيراد ملف تفريغ MySQL ، يعمل الأمر من خلال الملف ، وينفذ التعليمات ، ويعيد بناء قاعدة البيانات بالطريقة التي كانت عليها.
استيراد ملف تفريغ MySQL
قبل استيراد ملف التفريغ ، ستحتاج إلى قاعدة بيانات تم إنشاؤها بالفعل واسم مستخدم وكلمة مرور صالحين. يجب أن يكون لديك أيضًا جميع الأذونات لقاعدة البيانات. لست بحاجة إلى إذن GRANT ، لكن من الأسهل منحهم جميعًا.
تعرف على المزيد حول أذونات قاعدة البيانات قبل تغيير أدوار الأمان داخل قاعدة البيانات.
لإعادة استيراد بياناتك ، قم بتسجيل الدخول إلى خادم MySQL باستخدام الأمر mysql. اكتب استخدم [اسم قاعدة البيانات] عند المطالبة ، واستبدل اسم قاعدة البيانات. أدخل source [filename]، واستبدل اسم ملف التفريغ الذي أخذته من قبل.
عند الانتهاء ، تظهر قائمة بالرسائل تشير إلى أن جمل SQL قيد التنفيذ. ترقب الأخطاء ، ولكن إذا كان لديك الأذونات الصحيحة ، فلا بأس.
عند اكتمال العملية ، سيكون لديك نسخة مكررة من قاعدة البيانات الأصلية. للتحقق من التشابه بين قواعد البيانات ، قم بإجراء تفريغ آخر ثم قارن بين المخرجات. استخدم محرر نصوص أو أداة فرق مخصصة لمقارنة الملفين.
هناك نوعان من الاختلافات بين هذه الملفات ، ممثلة بخطوط حمراء في أعلى وأسفل شريط التمرير الأيمن. الأول هو السطر الذي يحتوي على اسم قاعدة البيانات ، وهذا مختلف لأن تسمية الملفات مختلفة. الثاني هو الطابع الزمني لملف التفريغ. هذا مختلف لأنه تم إعادة إنشاء قاعدة البيانات الثانية بعد الأولى. بخلاف ذلك ، تكون الملفات متطابقة تمامًا ، مما يعني أن قواعد البيانات التي أنشأتها كذلك.
التعليمات
كيف تصلح خطأ mysqldump: تم رفض الوصول عند استخدام جداول القفل؟
اطلب من مسؤول قاعدة البيانات أن يمنحك امتياز LOCK. إذا لم يؤد ذلك إلى حل المشكلة ، فحاول تشغيل الأمر mysqldump نفسه بإضافة علامة- معاملة واحدة ، مثل [ $ mysqldump - معاملة واحدة] [ -u مستخدم] [ -p DBNAME] >backup.sql
هل يمكنك استخدام جملة "where" مع mysqldump؟
استخدم جملة WHERE عند إنشاء نسخة احتياطية تتضمن فقط الصفوف التي تفي بالشرط المحدد. على سبيل المثال ، لتفريغ البيانات فقط من الصفوف ذات عمود المعرف أكبر من 100 ، أدخل "mysqldump my_db_name my_table_name --where=" id > 100 "> my_backup.sql".