كيفية استيراد بيانات قاعدة MySQL موجودة إلى MariaDB في ServBay
تُعد ServBay بيئة تطوير ويب محلية قوية مدمج بها نظام إدارة قواعد بيانات MariaDB بشكل افتراضي. هناك توافق عالٍ بين MariaDB وMySQL، ما يجعل نقل البيانات من أي قاعدة MySQL موجودة إلى MariaDB الخاصة بـServBay عملية مباشرة نسبيًا. يوضح هذا المقال بالتفصيل كيفية تصدير قاعدة بيانات MySQL واستيرادها بنجاح إلى بيئة MariaDB في ServBay.
نظرة عامة
يهدف هذا الدليل إلى مساعدة المطورين على ترحيل قاعدة بيانات MySQL الحالية الخاصة بمشاريعهم أو بياناتهم إلى MariaDB في ServBay، حتى يتمكنوا من مواصلة التطوير والاختبار محليًا والاستفادة بالكامل من كفاءة وسلاسة ServBay.
حالات الاستخدام
- نقل قاعدة بيانات MySQL من خادم بعيد أو جهاز محلي آخر إلى بيئة ServBay لاستخدامها في التطوير المحلي.
- دمج أو نسخ النسخ الاحتياطية لقواعد بيانات MySQL الحالية إلى نسخة MariaDB في ServBay.
- اختبار التوافق بين التطبيقات والبيانات القديمة من MySQL داخل بيئة ServBay.
المتطلبات الأساسية
قبل بدء عملية استيراد البيانات، يرجى التأكد من تحقق الشروط التالية:
- تثبيت وتشغيل MySQL: تحتاج إلى نموذج أو نسخة عاملة من قاعدة بيانات MySQL بها البيانات المطلوب نقلها، وتأكد من معرفتك بمعلومات الاتصال (المضيف، المنفذ، اسم المستخدم، كلمة المرور).
- تثبيت وتشغيل ServBay: تأتي ServBay مزودة مسبقًا بـMariaDB. تأكد من أن تطبيق ServBay يعمل وأن خدمة MariaDB قيد التشغيل. يمكنك الاطلاع على حالة MariaDB من خلال قائمة “الحزم” في واجهة ServBay الرئيسية.
- معلومات اتصال MariaDB في ServBay: يلزمك معرفة معلومات الاتصال الخاصة بـMariaDB داخل ServBay. بشكل افتراضي، تعمل MariaDB على
127.0.0.1
(أوlocalhost
) عبر المنفذ3306
، وغالبًا ما يكون المستخدم الافتراضي هوroot
. استعرض تبويب “قواعد البيانات” في ServBay لمعرفة تفاصيل الاتصال وكلمة مرور مستخدمroot
. ينصح بشدة بتدوين كلمة المرور أو تغييرها عند الاستخدام الأول. - صلاحيات المستخدم على قاعدة البيانات: تأكد من توفر صلاحيات التصدير من MySQL وصلاحيات الاستيراد وإنشاء قواعد البيانات في MariaDB ببيئة ServBay (غالبًا ما يتمتع مستخدم
root
في MariaDB بهذه الصلاحيات). - الوصول إلى الطرفية (Terminal): ستحتاج إلى تنفيذ الأوامر الخاصة بتصدير واستيراد قواعد البيانات عبر سطر الأوامر. الأمثلة المذكورة هنا صالحة لأنظمة macOS وLinux.
الخطوة 1: تصدير البيانات من قاعدة بيانات MySQL الأصلية
ابدأ باستخدام أداة mysqldump
لتصدير قاعدة بيانات MySQL الخاصة بك إلى ملف SQL.
- فتح الطرفية: شغّل تطبيق الطرفية في macOS أو نظامك.
- الاتصال بقاعدة بيانات MySQL الأصلية: أدخل الأمر التالي في الطرفية للاتصال بقاعدة بيانات MySQL المصدرية. سيتم سؤالك عن كلمة المرور.bash
mysql -u your_mysql_username -p -h your_mysql_host -P your_mysql_port
1- استبدل
your_mysql_username
باسم المستخدم الخاص بقاعدة بياناتك. - استبدل
your_mysql_host
بعنوان خادم قاعدة البيانات (مثلlocalhost
أو عنوان IP). - استبدل
your_mysql_port
برقم المنفذ (إذا لم يكن المنفذ الافتراضي 3306). - إذا كنت تعمل على نفس الجهاز الذي يستضيف MySQL وتستخدم المنفذ الافتراضي، يمكنك تبسيط الأمر إلى:
mysql -u your_mysql_username -p
- استبدل
- تصدير قاعدة البيانات: استخدم أمر
mysqldump
لتصدير قاعدة بياناتك. لنفترض أن اسمهاmydatabase
:bashmysqldump -u your_mysql_username -p mydatabase > mydatabase.sql
1- استبدل
your_mysql_username
باسم المستخدم الفعلي. - استبدل
mydatabase
باسم قاعدة البيانات التي تريد تصديرها. - يتم حفظ الملف الناتج
mydatabase.sql
في المسار الحالي للطرفية. يمكنك تحديد مسار كامل مثل/path/to/your/directory/mydatabase.sql
حسب رغبتك. - لتصدير جميع قواعد البيانات، استخدم الخيار
--all-databases
مع الانتباه للمخاطر. - إذا أردت تصدير جداول محددة، أضف أسماء الجداول بعد اسم قاعدة البيانات.
- استبدل
الخطوة 2: تجهيز قاعدة بيانات MariaDB في ServBay
قبل استيراد البيانات إلى MariaDB في ServBay، قد تحتاج إلى إنشاء قاعدة بيانات جديدة فارغة لاستقبال البيانات المصدرة.
- فتح الطرفية: إذا لم تكن مفتوحة بالفعل، شغّل الطرفية.
- الاتصال بقاعدة بيانات MariaDB في ServBay: استخدم بيانات الاتصال الافتراضية. غالبًا ما يكون اسم المستخدم
root
وكلمة المرور تجدها في تطبيق ServBay.bashmysql -u root -p -h 127.0.0.1 -P 3306
1- سيُطلب منك إدخال كلمة مرور المستخدم
root
الخاصة بـMariaDB في ServBay (تجدها في تبويب “قواعد البيانات” في التطبيق). - إذا غيرت المنفذ أو المضيف، عدّل القيمتين
-h
و-P
وفقًا لإعداداتك.
- سيُطلب منك إدخال كلمة مرور المستخدم
- إنشاء قاعدة بيانات جديدة: من خلال واجهة MariaDB، نفّذ الأمر التالي لإنشاء قاعدة بيانات جديدة. يُفضل استخدام نفس اسم القاعدة الأصلية، مثلًا
mydatabase
:sqlCREATE DATABASE mydatabase;
1- غيّر
mydatabase
للاسم المرغوب به في البيئة الجديدة.
- غيّر
الخطوة 3: استيراد البيانات إلى MariaDB في ServBay
أصبح بإمكانك الآن استيراد ملف SQL الذي صدّرته سابقًا إلى قاعدة البيانات التي أنشأتها في MariaDB ضمن ServBay.
- فتح الطرفية: تأكد من تواجد ملف
mydatabase.sql
داخل المجلد النشط بالطرفية أو استخدم المسار الكامل للملف. - استيراد ملف SQL: استخدم الأمر التالي لاستيراد الملف إلى MariaDB:bash
mysql -u root -p -h 127.0.0.1 -P 3306 mydatabase < mydatabase.sql
1- سيتم سؤالك عن كلمة مرور المستخدم
root
لـMariaDB في ServBay. - استبدل
mydatabase
باسم القاعدة التي أنشأتها في الخطوة السابقة. mydatabase.sql
هو اسم الملف الذي صدّرته (أو استخدم المسار الكامل للملف).
- سيتم سؤالك عن كلمة مرور المستخدم
قد تستغرق عملية الاستيراد بعض الوقت حسب حجم الملف وتعقيد القاعدة. غالبًا لا تظهر في الطرفية رسائل كثيرة أثناء التنفيذ حتى يكتمل الاستيراد.
الخطوة 4: التحقق من اكتمال الاستيراد
عقب انتهاء الاستيراد، يُنصح بشدة بالاتصال بـMariaDB في ServBay والتحقق من صحة البيانات.
- الاتصال بقاعدة بيانات MariaDB في ServBay:bash
mysql -u root -p -h 127.0.0.1 -P 3306
1- أدخل كلمة المرور الخاصة بالمستخدم
root
.
- أدخل كلمة المرور الخاصة بالمستخدم
- اختيار القاعدة:sql
USE mydatabase;
1- استبدل
mydatabase
باسم قاعدة البيانات التي تم استيراد البيانات إليها.
- استبدل
- تنفيذ استعلامات التحقق: نفّذ بعض أوامر SQL البسيطة للتأكد من وجود الجداول وصحة البيانات، مثل:sql
SHOW TABLES; -- عرض جميع الجداول SELECT COUNT(*) FROM your_table_name; -- عد الأسطر في جدول معيّن SELECT * FROM your_table_name LIMIT 10; -- استعرض أول 10 أسطر من جدول معين
1
2
3- غيّر
your_table_name
لاسم الجدول الفعلي في قاعدتك.
- غيّر
إذا كانت النتائج كما هو متوقع، فهذا يعني أن عملية الاستيراد تمت بنجاح.
التعامل مع مشاكل التوافق المحتملة
بالرغم من التوافق الكبير بين MariaDB وMySQL، قد تظهر بعض التحديات في حالات محددة. فيما يلي أبرز المشكلات المحتملة وحلولها:
1. عدم توافق بعض أوامر SQL
في حالات قليلة جدًا، بعض الأوامر الخاصة بـMySQL أو الدوال قد لا تكون مدعومة أو تتصرف بشكل مختلف في MariaDB.
- الحل: إذا ظهرت أخطاء في الصياغة أثناء الاستيراد، يمكنك تحرير ملف
mydatabase.sql
يدويًا وتصحيح الأوامر لتتناسب مع صياغة MariaDB. ارجع إلى وثائق MariaDB الرسمية للبحث عن التعديلات أو البدائل.
2. عدم دعم بعض محركات التخزين
يدعم كل من MySQL وMariaDB عدة محركات تخزين (InnoDB, MyISAM, Aria, XtraDB وغيرها). بعض المحركات قد تكون خاصة بأحد النظامين فقط ولا تتوفر في الآخر، كـ Archive أو Blackhole. يُعتبر InnoDB الأكثر شيوعًا ودعمًا على كليهما.
- الحل: إذا استخدمت قاعدة بياناتك محرك تخزين غير مدعوم في MariaDB، ستظهر لك تحذيرات أو أخطاء أثناء الاستيراد. يمكنك تعديل ملف
.sql
قبل الاستيراد لتغيير اسم المحرك غير المدعوم إلى محرك مدعوم مثلENGINE=InnoDB
. بعد الاستيراد، يمكنك تنفيذ الأمرALTER TABLE table_name ENGINE = InnoDB;
لتعديل محرك تخزين الجداول عند الحاجة.
3. حسابات المستخدمين والصلاحيات
عادةً لا تتضمن ملفات SQL الناتجة عن mysqldump
بيانات حسابات المستخدمين والصلاحيات. حتى عند تضمينها، قد تختلف طريقة المصادقة وتخزين الصلاحيات بين MySQL وMariaDB، ما يؤدي إلى مشاكل عند استيراد جداول المستخدمين. يوفر ServBay مستخدم root
افتراضي يمكنك من خلاله إدارة المستخدمين أو إنشاء مستخدمين جدد.
- الحل: بعد اكتمال استيراد البيانات، أنشئ حسابات المشاركة والصلاحيات اللازمة يدويًا عبر أوامر SQL
CREATE USER
وGRANT
المعتادة. مثال:sql-- إنشاء مستخدم جديد (قم بتغيير 'your_username' و'localhost' و'your_password') CREATE USER 'your_username'@'localhost' IDENTIFIED BY 'your_password'; -- منح كل الصلاحيات على قاعدة بيانات معينة GRANT ALL PRIVILEGES ON mydatabase.* TO 'your_username'@'localhost'; -- تحديث الصلاحيات FLUSH PRIVILEGES;
1
2
3
4
5
6
7
8- استبدل
your_username
، وlocalhost
(قد تستخدم%
بدلاً منها حسب طريقة الاتصال)، وyour_password
وmydatabase
بالقيم المناسبة. - إذا نسيت كلمة مرور مستخدم
root
في MariaDB الخاصة بـServBay، توفر ServBay خاصية إعادة تعيين كلمات مرور قواعد البيانات – ارجع إلى تطبيق ServBay أو أدلته للمزيد من التفاصيل.
- استبدل
ملخص
يعتبر استيراد البيانات من قاعدة MySQL إلى MariaDB في ServBay خطوة جوهرية لنقل سير عمل التطوير المحلي إلى بيئة ServBay. تعتمد العملية بشكل أساسي على تصدير البيانات باستخدام mysqldump
، ثم إنشاء قاعدة بيانات جديدة مستهدفة في MariaDB عبر ServBay، واستيراد ملف SQL إليها باستخدام أمر mysql
، وأخيرًا التحقق من صحة النتائج. باتباع الخطوات الموضحة وحلول مشاكل التوافق، يمكنك نقل قواعد بياناتك بسلاسة ومواصلة تطوير تطبيقات الويب بكفاءة في ServBay.