اذهب إلى المحتوى

إحدى المهارات الأساسية والمهمة التي عليك أن تتقنها هي القدرة على استيراد وتصدير قواعد البيانات، إذ تستطيع أخذ نسخ احتياطية لقواعد بياناتك وتستعيدها عند الحاجة، أو يمكنك الاستفادة منها لنقل البيانات إلى خادوم جديد أو بيئة تطوير مختلفة.
إجراء عملية تصدير من قواعد بيانات MySQL و MariaDB هو أمرٌ بسيطٌ، وسنشرحه في هذا الدرس إضافةً إلى شرح طريقة استيراد النسخة الاحتياطية.

المتطلبات المسبقة

لتصدير أو استيراد قواعد بيانات MySQL ستحتاج إلى:

  • وصول إلى خادوم لينكس يستعمل قواعد بيانات MySQL أو MariaDB.
  • قاعدة بيانات مع معلومات المستخدم القادر على إجراء عمليات عليها.

تصدير قاعدة البيانات

تُستعمَل الأداة mysqldump لتصدير قواعد البيانات إلى ملفات SQL نصية، ويمكن بسهولة نقل تلك الملفات كيفما تشاء.
ستحتاج إلى معرفة اسم قاعدة البيانات نفسها وإلى اسم المستخدم وكلمة المرور لحسابٍ يملك امتيازاتٍ تسمح –على الأقل– بأذونات القراءة الكاملة على قاعدة البيانات.
استعمل الأمر الآتي لتصدير قاعدة البيانات:

mysqldump -u username -p database_name > data-dump.sql
  • username هو اسم المستخدم الذي يستطيع الوصول إلى قاعدة البيانات
  • database_name هو اسم قاعدة البيانات التي نريد تصديرها
  • data-dump.sql هو مسار الملف الذي نريد حفظ مخرجات عملية التصدير إليه

لن يعرض الأمر السابق أيّة مخرجات مرئية، لكن يمكنك النظر في محتويات الملف data-dump.sql لتتأكد من وجود ملف SQL سليم فيه باستعمال الأمر:

head -n 5 data-dump.sql

يجب أن تبدو المخرجات (التي تظهر أوّل خمسة أسطر من الملف) كما يلي، يجدر بالذكر أنَّ الملف الآتي هو ناتج عملية تصدير قاعدة بيانات باسم database_name:

-- MySQL dump 10.13  Distrib 5.7.16, for Linux (x86_64)
--
-- Host: localhost    Database: database_name
-- ------------------------------------------------------
-- Server version       5.7.16-0ubuntu0.16.04.1

إذا حدثت أيّة أخطاء أثناء عملية التصدير، فسيعرضها mysqldump على الشاشة مباشرةً.

استيراد قاعدة البيانات

لاستيراد ملف SQL مُصدَّر إلى قاعدة بيانات MySQL أو MariaDB، فعليك أولًا إنشاء قاعدة بيانات جديدة التي ستستضيف البيانات المستوردة.
سجِّل دخولك إلى عميل قواعد البيانات بحساب المستخدم root أو أي حساب آخر له امتيازات كافية لإنشاء قواعد بيانات جديدة:

mysql -u root -p

ستنتقل الآن إلى سطر الأوامر الخاص بقواعد MySQL، أنشِئ الآن قاعدة بيانات جديدة وليكن اسمها new_database:

CREATE DATABASE new_database;

يجب أن تشاهد الناتج الآتي الذي يدل على نجاح إنشائها:

Query OK, 1 row affected (0.00 sec)

اخرج الآن من عميل MySQL بكتابة الأمر exit أو بالضغط على الزرين Ctrl+D، وبعد عودتك إلى سطر الأوامر ستستطيع استيراد الملف باستخدام الأمر الآتي:

mysql -u username -p new_database < data-dump.sql
  • username هو اسم المستخدم الذي يستطيع الوصول إلى قاعدة البيانات
  • new_database هو اسم قاعدة البيانات التي نريد استيراد البيانات إليها
  • data-dump.sql هو مسار الملف الذي نريد استيراد محتوياته

لن تظهر أية مخرجات إذا نجح تنفيذ الأمر السابق، لكن إن حدثت أخطاء خلال العملية فسيظهرها الأمر mysql على الشاشة.
يمكنك التأكد من استيراد قاعدة البيانات بتسجيل الدخول إلى عميل MySQL مجددًا وتفحص البيانات، يمكن فعل ذلك بتحديد قاعدة البيانات الجديدة عبر USE new_database ثم كتابة الأمر SHOW TABLES;‎ أو ما شابهه.

الخلاصة

أصبحت تعلم كيف تصدِّر قواعد بيانات MySQL إلى ملفات وكيف تستوردها مجددًا.
هنالك خياراتٌ أخرى متاحةٌ للأمر mysqldump التي تُعدِّل سلوك هذا الأمر عند تصدير قواعد البيانات، والتي يمكنك التعرف عليها في صفحة التوثيق الرسمي.
ترجمة –وبتصرّف– للمقال How To Import and Export Databases in MySQL or MariaDB لصاحبه Mateusz Papiernik


تفاعل الأعضاء

أفضل التعليقات

سامح أشرف

نشر

بتاريخ On 10/15/2020 at 21:10 قال محمود رضا موسى:

لو سمحت ماذا افعل اذا كنت اريد حفظ الملف في مسار معين؟

 

مرحبًا محمود

لتصدير قاعدة الببانات في مسار معين، بإمكانك الذهاب أولًا إلى المسار الذي تريد بإستخدام الأمر cd 

cd /path/to/dir

ثم يمكنك بعدها مباشرة إستخراج قاعدة البيانات في هذا المسار، كالتالي:

mysqldump -u username -p databseName > sqlfile.sql

بإمكانك أيضًا دمج الخطوتين معًا ليصبح الأمر بهذا الشكل

mysqldump -u username -p databseName > "/path/to/dir/sqlfile.sql"

تأكد من وضع كامل المسار بين علامتي تنصيص حتى لا تحدص مشكلة بسبب وجود فراغات spaces في أسماء بعض المجلدات.



انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أضف تعليق

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • أضف...