ServBay: استيراد بيانات قاعدة بيانات MariaDB الحالية إلى البيئة المحلية
يُعد ServBay بيئة تطوير ويب محلية قوية، تأتي مدمجة بحزمة برنامج MariaDB. من الشائع نقل أو استيراد قاعدة بيانات MariaDB الحالية الخاصة بك (على سبيل المثال من بيئة محلية أخرى، خادم بعيد أو من ملف نسخ احتياطي) إلى نسخة MariaDB المدمجة داخل ServBay. سيرشدك هذا المقال خطوة بخطوة خلال كل العملية، لضمان نقل البيانات بسلاسة إلى بيئة تطويرك المحلية عبر ServBay.
نظرة عامة
يغطي هذا الدليل كيفية تصدير البيانات من مثيل MariaDB المصدر باستخدام أدوات سطر الأوامر القياسية MariaDB/MySQL (mysqldump
وmysql
)، ومن ثم تجهيز قاعدة البيانات المستهدفة في ServBay، وأخيراً استيراد البيانات إلى مثيل MariaDB المدمج في ServBay.
المتطلبات المسبقة
قبل أن تبدأ عملية استيراد البيانات، تأكد من توافر الشروط التالية:
- تثبيت وتشغيل ServBay على macOS: تأكد من تثبيت تطبيق ServBay وتشغيله بنجاح على جهازك.
- تم تفعيل وتشغيل حزمة MariaDB داخل ServBay: في واجهة تطبيق ServBay، تحقق من قائمة "الحزم" بأن حزمة MariaDB مفعّلة ومميزة باللون الأخضر. إذا لم تكن تعمل، قم بتشغيلها.
- لديك صلاحية الوصول لقاعدة بيانات MariaDB المصدر: يجب أن تعرف عنوان المضيف، المنفذ (إن لم يكن الافتراضي)، اسم المستخدم وكلمة المرور، واسم قاعدة البيانات المراد تصديرها.
- لديك صلاحية الوصول لقاعدة البيانات المستهدفة في ServBay: غالباً ما يكون المستخدم الافتراضي هو
root
لكلمة مرور MariaDB في ServBay. قد لا تكون هناك كلمة مرور افتراضياً عند التثبيت الأولي أو ربما قمت بإعدادها أثناء التثبيت/الإعداد. يمكنك العثور على هذه المعلومات أو إعادة تعيين كلمة المرور من خلال واجهة إدارة قواعد البيانات في ServBay. - توفر مساحة كافية على القرص: تأكد من وجود مساحة كافية في بيئة ServBay لتخزين البيانات المستوردة.
خطوات العملية
الخطوة 1: تصدير البيانات من MariaDB المصدر
أولاً، استخدم أداة mysqldump
لتصدير بيانات قاعدة بيانات MariaDB المصدر إلى ملف SQL.
افتح تطبيق الطرفية (Terminal): افتح تطبيق "الطرفية" في نظام macOS الخاص بك.
نفّذ أمر التصدير: استخدم أمر
mysqldump
للاتصال بمثيل MariaDB المصدر وتصدير قاعدة البيانات. لنفترض اسم القاعدة المصدر هوmydatabase_source
وستصدر البيانات إلى ملف باسمmydatabase.sql
:bashmysqldump -u your_source_username -p -h your_source_host -P your_source_port mydatabase_source > mydatabase.sql
1your_source_username
: استبدله باسم مستخدم MariaDB المصدر.-p
: بعد تنفيذ الأمر سيُطلب منك إدخال كلمة المرور.-h your_source_host
: إذا لم تكن قاعدة البيانات المصدر محلية (مثلاً على خادم بعيد)، حدد عنوان المضيف. إذا كانت محلية وبالإعداد الافتراضي يمكن حذف هذا الخيار.-P your_source_port
: إذا لم يكن المنفذ الافتراضي 3306، حدد رقم المنفذ. غالباً يمكن حذف هذا الخيار.mydatabase_source
: استبدله باسم قاعدة البيانات المراد تصديرها.> mydatabase.sql
: يحفظ نتائج التصدير في ملف باسمmydatabase.sql
داخل المجلد الحالي للطرفية.
لتسهيل الوصول لهذا الملف لاحقاً من داخل ServBay، يُوصى بحفظه في مجلد مؤقت تحت مجلد مواقع ServBay الجذر، مثل
/Applications/ServBay/www/temp/mydatabase.sql
. يمكنك التصدير أولاً للمجلد الحالي ثم نقله باستخدام الأمرmv
:bashmysqldump -u your_source_username -p mydatabase_source > mydatabase.sql mv mydatabase.sql /Applications/ServBay/www/temp/
1
2ملاحظة: تأكد من وجود المجلد
/Applications/ServBay/www/temp/
مسبقاً.
الخطوة 2: إعداد قاعدة البيانات الهدف (داخل ServBay)
قبل استيراد البيانات، نحتاج إلى إنشاء قاعدة بيانات جديدة داخل مثيل MariaDB الخاص بServBay.
الاتصال بقاعدة بيانات MariaDB على ServBay: افتح الطرفية واستخدم أمر
mysql
للاتصال بMariaDB داخل ServBay. عادة يسمح ServBay بالاتصال عن طريق Unix socket أو localhost.bashmysql -u root -p
1بعد تنفيذ الأمر، سيطلب منك النظام إدخال كلمة مرور مستخدم
root
لMariaDB الخاصة بServBay. أدخل كلمة المرور واضغط Enter للاتصال بعميل أوامر MariaDB.نصيحة: إذا لم تكن متأكداً من كلمة مرور root أو واجهت مشاكل في الاتصال، تأكد من إعدادات MariaDB أو سجل الأخطاء ضمن واجهة ServBay.
إنشاء القاعدة الهدف: من داخل عميل أوامر MariaDB، أنشئ قاعدة بيانات جديدة لاستقبال البيانات المستوردة. يُفضل استخدام نفس اسم القاعدة المصدر (مثلاً
mydatabase
)، لكن هذا ليس إلزامياً.sqlCREATE DATABASE mydatabase CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
1mydatabase
: استبدله باسم القاعدة التي تود إنشائها في ServBay.CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci
: يُنصح بشدة تحديد الترميز والترتيب لتفادي مشاكل الترميز بعد الاستيراد. استخدمutf8mb4
لدعم لغات وحروف متعددة. عدل ذلك وفق إعدادات قاعدة البيانات المصدر لتحقيق التوافق.
الخروج من عميل أوامر MariaDB: بعد إنشاء القاعدة، اكتب
exit;
ثم اضغط Enter للخروج.sqlexit;
1
الخطوة 3: استيراد البيانات إلى MariaDB في ServBay
الآن، سنقوم باستيراد ملف SQL الذي تم تصديره إلى القاعدة التي أنشأناها في ServBay.
افتح تطبيق الطرفية: تأكد أنك داخل الطرفية.
نفذ أمر الاستيراد: استخدم أمر
mysql
لاستيراد ملف SQL إلى القاعدة المستهدفة.bashmysql -u root -p mydatabase < /Applications/ServBay/www/temp/mydatabase.sql
1-u root -p
: للاتصال كمستخدم root الخاص بMariaDB داخل ServBay وطلب إدخال كلمة المرور.mydatabase
: استبدله بالاسم الذي أنشأته في الخطوة السابقة.< /Applications/ServBay/www/temp/mydatabase.sql
: يستخدم إعادة توجيه الإدخال لتمرير محتوى ملف SQL كأوامر للعميل. تأكد أن/Applications/ServBay/www/temp/mydatabase.sql
هو المسار الفعلي للملف.
قد تستغرق عملية الاستيراد بعض الوقت حسب حجم البيانات. لن تُعرض أية رسائل حتى انتهاء الاستيراد أو ظهور خطأ.
الخطوة 4: التحقق من اكتمال الاستيراد
بعد انتهاء الاستيراد، يُنصح بشدة التحقق من صحة إدخال البيانات إلى قاعدة بيانات MariaDB داخل ServBay.
الاتصال بقاعدة بيانات MariaDB على ServBay:
bashmysql -u root -p
1اختيار القاعدة المستهدفة:
sqlUSE mydatabase;
1mydatabase
: استبدله باسم القاعدة التي استوردت إليها البيانات.
استعلام البيانات: نفذ أوامر استعلام لفحص تراكيب الجداول والتأكد من وجود البيانات:
sqlSHOW TABLES; -- عرض جميع الجداول SELECT COUNT(*) FROM your_table_name; -- عرض عدد السجلات في جدول معين SELECT * FROM your_table_name LIMIT 10; -- عرض أول 10 سجلات من جدول معين
1
2
3your_table_name
: استبدله بالاسم الفعلي للجدول في قاعدتك.
بمقارنة عدد السجلات أو مراجعة بيانات رئيسية مع القاعدة المصدر، تأكد من اكتمال الاستيراد.
معالجة مشكلات التوافق الشائعة
بالرغم من أن إصدارات MariaDB تكون عادة متوافقة فيما بينها، إلا أنه قد تظهر بعض المشكلات أثناء ترحيل البيانات. فيما يلي أبرز المشكلات والحلول المقترحة:
1. عدم توافق بعض أوامر SQL
إذا كان إصدار MariaDB المصدر قديماً أو يستخدم أوامر خاصة بإصدار معين، قد تفشل عملية تنفيذ ملف SQL على الإصدار الأحدث في ServBay.
- الحل: حرر ملف
mydatabase.sql
يدوياً وابحث عن الأوامر التي تسبب الخطأ وعدلها حسب الحاجة. راجع توثيقات MariaDB (MariaDB Documentation) للمزيد.
2. عدم توافق أو الاستغناء عن بعض محركات التخزين
قد لا تكون بعض محركات التخزين القديمة مثل MyISAM معتمدة كإعداد افتراضي في الإصدارات الجديدة أو يوجد اختلاف في إعداداتها.
الحل: قبل الاستيراد، عدّل ملف SQL لاستبدال تعريفات
ENGINE=MyISAM
أو أي محرك قديم بمحرك مدعوم وموصى به في ServBay مثلENGINE=InnoDB
. عادة ما يكون InnoDB هو الخيار الأفضل والأكثر أماناً للمعاملات.sql-- في ملف SQL قد تجد سطر مثل: CREATE TABLE `your_table_name` ( -- ... تعريف الأعمدة ... ) ENGINE=MyISAM DEFAULT CHARSET=utf8; -- قم بتعديله إلى: CREATE TABLE `your_table_name` ( -- ... تعريف الأعمدة ... ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
1
2
3
4
5
6
7
8
9
3. فقدان المستخدمين والصلاحيات
بشكل افتراضي، أمر mysqldump
لا يُصدّر حسابات المستخدمين أو صلاحياتهم. بعد الاستيراد، لن تكون الحسابات التي أنشأتها في القاعدة الأصلية متوفرة تلقائياً في قاعدة بيانات ServBay.
الحل: بعد الاستيراد، عليك إعادة إنشاء المستخدمين والصلاحيات يدوياً في MariaDB الخاصة بServBay باستخدام مستخدم
root
، من خلال أوامرCREATE USER
وGRANT
:sql-- إنشاء مستخدم جديد (مثلاً 'servbay_user' من localhost، كلمة المرور 'your_password') CREATE USER 'servbay_user'@'localhost' IDENTIFIED BY 'your_password'; -- منح جميع الصلاحيات للمستخدم على قاعدة بيانات معينة GRANT ALL PRIVILEGES ON mydatabase.* TO 'servbay_user'@'localhost'; -- للسماح بالاتصال من أي مضيف (غير موصى به للإنتاج) -- CREATE USER 'servbay_user'@'%' IDENTIFIED BY 'your_password'; -- GRANT ALL PRIVILEGES ON mydatabase.* TO 'servbay_user'@'%'; -- تحديث الصلاحيات FLUSH PRIVILEGES;
1
2
3
4
5
6
7
8
9
10
11
12- استبدل
servbay_user
وyour_password
باسم المستخدم وكلمة المرور التي تريدها. mydatabase
استبدلها باسم قاعدة البيانات المستهدفة.- عدّل
@'localhost'
أو@'%'
حسب الحاجة.
- استبدل
4. اختلاف الترميز وترتيب الأحرف (Character Set and Collation)
إن كان الترميز وترتيب الأحرف في القاعدة المصدر مختلفين عن القاعدة المستهدفة، قد تلاحظ ظهور رموز غير مفهومة خاصة بالبيانات غير الإنجليزية.
- الحل: أثناء إنشاء القاعدة الجديدة (الخطوة 2)، حدد الترميز وترتيب الأحرف المطابق أو الأكثر توافقاً (مثل
utf8mb4
). إذا ظهرت مشاكل بعد الاستيراد، احذف القاعدة، وعدّل ملف SQL لتركيب الترميز الصحيح، وأضف في بدايته سطر مثلSET NAMES 'utf8mb4';
، ثم أعد إنشاء القاعدة وقم بعملية الاستيراد مجدداً.
ملاحظات خاصة بـ ServBay
- بيانات اعتماد MariaDB: كما ذكر سابقاً، كلمة مرور المستخدم
root
الخاصة بMariaDB في ServBay يمكن مراجعتها أو تغييرها من خلال واجهة ServBay. - ملفات السجل: إذا ظهرت أخطاء خلال الاستيراد، راجع سجل أخطاء MariaDB داخل مجلد
logs
ضمن مجلد تثبيت ServBay للمزيد من التفاصيل. - الأداء: قد تستغرق عملية استيراد قواعد البيانات الكبيرة وقتاً أطول، وقد تستهلك MariaDB في ServBay موارد النظام بشكل ملحوظ.
الأسئلة الشائعة (FAQ)
س: ماذا أفعل إذا انقطعت عملية الاستيراد؟
ج: إذا انقطعت عملية الاستيراد، غالباً ستكون القاعدة غير مكتملة. يُوصى بحذف القاعدة المستهدفة أولاً (DROP DATABASE mydatabase;
) ثم إعادة إنشائها (CREATE DATABASE mydatabase;
) وتنفيذ عملية الاستيراد مجدداً.
س: ملف SQL الناتج ضخم جداً، هل توجد طريقة استيراد أفضل؟
ج: للملفات الضخمة، يمكن أن يكون استخدام <
مرهقاً للذاكرة وغير فعال. يمكنك بدلاً من ذلك استخدام أمر source
داخل عميل MariaDB:
- الاتصال بـ ServBay:
mysql -u root -p
- اختيار القاعدة:
USE mydatabase;
- نفذ:
SOURCE /path/to/your/large_database.sql;
هذه الطريقة أكثر ثباتاً، وإن كانت تتطلب العمل من داخل عميل MariaDB ذاته.
س: هل يمكنني الاستيراد من خلال واجهة ServBay؟
ج: واجهة ServBay الرئيسية مخصصة لإدارة الحزم وإعداد المواقع وعرض الملفات والسجلات. عادة ما يتم تصدير/استيراد البيانات عبر أدوات إدارة قواعد البيانات سواء سطر الأوامر (mysql
/mysqldump
) أو أدوات رسوميات مثل phpMyAdmin أو Adminer. ServBay يأتي مدمجاً بـ Adminer ويمكنك الولوج إليه من خلال ServBay لاستيراد البيانات، مما يكون أسهل للمبتدئين أو في قواعد البيانات الصغيرة.
الخلاصة
يُعد ترحيل قواعد بيانات MariaDB الحالية إلى بيئة MariaDB الخاصة بServBay عملية قياسية. باستخدام mysqldump
للتصدير وأداة mysql
للاستيراد، يمكنك إنجاز ذلك بسهولة. تذكر دائماً التأكد من تحقيق المتطلبات المسبقة والتعامل مع أية مشكلات توافق محتملة (مثل الترميز، محرك التخزين، أو الصلاحيات) والتحقق من النتائج بعد الاستيراد. يوفر ServBay بيئة تطوير محلية آمنة ومستقرة لإدارة قاعدة بيانات MariaDB ودعم تدفق أعمال تطوير الويب بكل كفاءة.