إدارة واستخدام قاعدة بيانات MariaDB في ServBay
تُعد MariaDB واحدة من أنظمة إدارة قواعد البيانات العلائقية مفتوحة المصدر الأكثر شهرة، وهي مشتقة من MySQL ومعروفة بأدائها العالي وموثوقيتها وقابليتها للتوسع. يوفر ServBay، الذي تم تصميمه خصيصًا لنظام macOS كبيئة تطوير ويب محلية، خدمة قاعدة بيانات MariaDB مدمجة، ما يمنح المطورين إمكانية إدارة قواعد البيانات بسهولة. يقدم هذا الدليل شرحًا مفصلًا حول كيفية تثبيت، إعداد، الاتصال، الإدارة (بما في ذلك النسخ الاحتياطي والاستعادة)، تحسين الأداء وتأمين قاعدة بيانات MariaDB الخاصة بك ضمن ServBay.
تثبيت وإعداد MariaDB
يعتبر تثبيت MariaDB في ServBay أمرًا بغاية السهولة. فقط افتح الواجهة الرئيسية لـ ServBay، ثم انقر على الحزم في شريط التنقل الجانبي، واختر MariaDB. ستجد قائمة بإصدارات MariaDB المتاحة، علمًا بأن ServBay يدعم حاليًا عدة إصدارات من MariaDB من 10.4 حتى 11.7.
بعد اختيار إصدار MariaDB الذي تريده، اضغط على زر التثبيت لإكمال العملية.
تشغيل وإدارة خدمة MariaDB
بعد اكتمال التثبيت، يمكنك تشغيل أو إيقاف أو إعادة تشغيل خدمة MariaDB من خلال منصة إدارة ServBay أو عبر أداة الأوامر servbayctl
.
باستخدام منصة إدارة ServBay
- افتح الواجهة الرئيسية لـ ServBay.
- انتقل إلى قسم الحزم من شريط التنقل الجانبي واختر MariaDB.
- في صفحة تفاصيل حزمة MariaDB، ابحث عن إصدار MariaDB الذي قمت بتثبيته.
- استخدم الأزرار المناسبة لتشغيل أو إيقاف أو إعادة تشغيل الخدمة.
باستخدام أداة الأوامر servbayctl
servbayctl
هي أداة أوامر قوية توفرها ServBay لإدارة جميع الخدمات والحزم.
bash
# بدء خدمة MariaDB لإصدار معين (مثال: MariaDB 11.3)
servbayctl start mariadb 11.3
# إيقاف خدمة MariaDB لإصدار معين
servbayctl stop mariadb 11.3
# إعادة تشغيل خدمة MariaDB لإصدار معين
servbayctl restart mariadb 11.3
# عرض حالة تشغيل خدمة MariaDB
servbayctl status mariadb 11.3
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
يرجى استبدال 11.3
برقم إصدار MariaDB الذي قمت بتثبيته واستخدامه.
إعداد MariaDB
يوفر ServBay واجهة رسومية سهلة الاستخدام لتغيير إعدادات MariaDB، كما يمكنك أيضًا تحرير ملف الإعدادات مباشرة. من خلال الواجهة الرسومية يمكنك تعديل إعدادات هامة مثل الذاكرة والتخزين المؤقت وعدد الاتصالات بهدف تحسين أداء MariaDB.
للحصول على شرح مفصل حول كيفية تعديل وتحسين إعدادات MariaDB، راجع وثائق الإعدادات المتقدمة لـ ServBay: تعديل إعدادات MariaDB.
الاتصال بقاعدة بيانات MariaDB
يمكن الاتصال بـ MariaDB التي تعمل عبر ServBay بعدة طرق، منها أدوات سطر الأوامر أو برامج الإدارة الرسومية.
الاتصال باستخدام سطر الأوامر
يمكنك استخدام أداة mysql
القياسية للاتصال بخدمة MariaDB.
الاتصال عبر TCP/IP: بتحديد اسم المضيف (
localhost
) والمنفذ (افتراضيًا 3306).bashmysql -u your_username -p -h localhost -P 3306
1عند تنفيذ هذا الأمر ستظهر مطالبة بإدخال كلمة السر. استبدل
your_username
باسم مستخدم قاعدة البيانات الخاص بك.الاتصال عبر Socket: من خلال تحديد مسار ملف Unix domain socket وهو غالبًا أسرع من اتصال TCP/IP.
bashmysql -u your_username -p -S /Applications/ServBay/tmp/mysql.sock
1يُخزن ملف socket الخاص بـ MariaDB في المسار
/Applications/ServBay/tmp/mysql.sock
بشكل افتراضي في ServBay.
استخدام phpMyAdmin و Adminer للاتصال
يأتي ServBay مدمجًا بشكل افتراضي بأداتي phpMyAdmin و Adminer الشهيرتين لإدارة قواعد البيانات، إذ يمكن من خلالهما إدارة القاعدة عبر واجهة ويب سهلة.
يمكنك الوصول إلى صفحة البداية الخاصة بهما عبر عنوان الخدمة المحلية لـ ServBay:
- رابط الوصول: https://servbay.host
ستجد في الصفحة روابط كل من phpMyAdmin وAdminer. اضغط على الرابط المناسب للدخول إلى صفحة تسجيل الدخول. عند تسجيل الدخول، استخدم اسم المستخدم وكلمة المرور الذين يمكنك الحصول عليهما من صفحة تفاصيل حزمة MariaDB ضمن واجهة إدارة ServBay معلومات حساب وقاعدة بيانات MariaDB.
إدارة قواعد البيانات
إنشاء قاعدة بيانات ومستخدم
بعد اتصالك بـ MariaDB، يمكنك تنفيذ أوامر SQL لإنشاء قواعد بيانات جديدة وإدارة صلاحيات المستخدمين.
إنشاء قاعدة بيانات:
sqlCREATE DATABASE mydatabase_servbay;
1يُفضل أن يكون اسم القاعدة معبرًا وواضحًا، مثل
mydatabase_servbay
.إنشاء مستخدم جديد ومنحه صلاحيات: أنشئ مستخدمًا خاصًا لتطبيقك أو مشروعك وامنحه فقط الصلاحيات الضرورية، فهذا يعتبر ممارسة أمان جيدة.
sql-- إنشاء مستخدم جديد مثل servbay-demo وتعيين كلمة المرور CREATE USER 'servbay-demo'@'localhost' IDENTIFIED BY 'a_strong_password'; -- منح المستخدم جميع الصلاحيات على قاعدة بيانات محددة GRANT ALL PRIVILEGES ON mydatabase_servbay.* TO 'servbay-demo'@'localhost'; -- تحديث الصلاحيات لتصبح نافذة على الفور FLUSH PRIVILEGES;
1
2
3
4
5
6
7
8استبدل
servbay-demo
باسم المستخدم المراد تعيينه، وa_strong_password
بكلمة مرور قوية، وmydatabase_servbay
باسم قاعدة البيانات المناسبة. يحدد@'localhost'
أن المستخدم بإمكانه الاتصال فقط من الجهاز المحلي.
النسخ الاحتياطي والاستعادة
تعد النسخ الاحتياطية الدورية عنصرًا أساسيًا لحماية البيانات. يمكنك إجراء نسخ احتياطي يدوي عبر أوامر سطر الأوامر أو تفعيل ميزة النسخ الاحتياطي التلقائي في ServBay.
النسخ الاحتياطي اليدوي
يستخدم أداة mysqldump
لتصدير قاعدة البيانات إلى ملف SQL. يوصى بوضع النسخة الاحتياطية ضمن مجلد النسخ الاحتياطي الخاص بـ ServBay:
bash
/Applications/ServBay/backup/mariadb
1
تنفيذ أمر النسخ الاحتياطي:
bash
mysqldump -u servbay-demo -p mydatabase_servbay > /Applications/ServBay/backup/mariadb/mydatabase_servbay_backup.sql
1
استبدل servbay-demo
و mydatabase_servbay
باسم المستخدم واسم القاعدة. ستظهر مطالبة لإدخال كلمة المرور عند التنفيذ.
الاستعادة اليدوية لقاعدة البيانات
يستخدم أداة mysql
لاستيراد ملف النسخة الاحتياطية إلى قاعدة البيانات.
bash
mysql -u servbay-demo -p mydatabase_servbay < /Applications/ServBay/backup/mariadb/mydatabase_servbay_backup.sql
1
يستعيد هذا الأمر البيانات من ملف /Applications/ServBay/backup/mariadb/mydatabase_servbay_backup.sql
إلى قاعدة mydatabase_servbay
.
ميزة النسخ الاحتياطي التلقائي في ServBay
يقدم ServBay ميزة النسخ الاحتياطي التلقائي القوية، والتي تتيح نسخ قواعد بيانات MariaDB وملفات المواقع وإعدادات ServBay وشهادات SSL وغير ذلك من البيانات الهامة بشكل دوري. يمكنك تحديد معدل النسخ، وعدد النسخ الاحتياطية وتعيين مكان التخزين من إعدادات ServBay. تساعدك هذه الميزة على تبسيط عمليات النسخ الاحتياطي وضمان أمان البيانات. للحصول على مزيد من التفاصيل، راجع كيفية النسخ الاحتياطي والاستعادة التلقائية لقواعد بيانات MariaDB.
تحسين الأداء
توفر MariaDB العديد من خيارات تحسين الأداء التي تناسب بيئة التطوير أو الاختبار المحلية في ServBay.
تحسين الفهارس (Indexes)
إنشاء فهارس للأعمدة كثيرة الاستخدام في جمل WHERE
أو شروط JOIN
أو جمل ORDER BY
يعزز سرعة الاستعلام بشكل ملحوظ.
sql
-- إنشاء فهرس للحقل column_name في الجدول your_table_name
CREATE INDEX idx_column_name ON your_table_name(column_name);
1
2
2
تحسين الاستعلامات
استعمل أمر EXPLAIN
لتحليل خطة تنفيذ الاستعلامات، ومعرفة كيفية جلب البيانات وما إذا تم استخدام الفهارس، ما يساعدك في إيجاد نقاط التحسين.
sql
EXPLAIN SELECT * FROM your_table_name WHERE column_name = 'value';
1
من خلال نتيجة أمر EXPLAIN
يمكنك تعديل الاستعلامات أو إضافة فهارس جديدة أو تغيير بنية الجداول.
تحسين الإعدادات
تعديل إعدادات MariaDB (عادة ضمن ملف my.cnf
أو my.ini
) خاصة ما يتعلق بالذاكرة والتخزين المؤقت وعدد الاتصالات المتزامنة، يمكن أن يؤدي إلى أداء أفضل. يُعد متغير innodb_buffer_pool_size
من أهم المعاملات، إذ يحدد كمية الذاكرة المخصصة لتخزين البيانات والفهارس لمحرك InnoDB ويجب ضبطه بما يناسب حجم الذاكرة في جهازك.
ini
[mysqld]
# تعديل حجم تجمّع ذاكرة InnoDB، مثلاً: 50-70% من الذاكرة الفعلية
innodb_buffer_pool_size = 1G
1
2
3
2
3
بعد تعديل الإعدادات، يجب إعادة تشغيل خدمة MariaDB حتى تدخل حيز التنفيذ. يمكن ذلك من خلال واجهة ServBay الرسومية أو أمر servbayctl restart mariadb <version>
.
إدارة الأمان
حتى في بيئة تطوير محلية، من المهم تأمين قاعدة البيانات لتعزيز عادات أمان جيدة.
تعيين كلمات مرور قوية
عيّن كلمات مرور معقدة وفريدة لجميع المستخدمين خاصة مستخدم root. تجنب تعيين كلمات مرور ضعيفة أو افتراضية.
sql
-- تغيير كلمة مرور المستخدم
ALTER USER 'servbay-demo'@'localhost' IDENTIFIED BY 'a_new_strong_password';
-- أو باستخدام الصياغة القديمة (حسب إصدار MariaDB)
SET PASSWORD FOR 'servbay-demo'@'localhost' = PASSWORD('a_new_strong_password');
1
2
3
4
5
2
3
4
5
النسخ الاحتياطي الدوري
كما أشرنا سابقًا، الحافظ على خطة نسخ احتياطي منتظمة لتفادي فقدان البيانات. استخدم ميزة النسخ الاحتياطي التلقائي في ServBay لتحقيق أمان إضافي.
تقييد الوصول
اعتمد مبدأ "أقل الامتيازات" ولا تمنح أي مستخدم صلاحيات أكثر من المطلوب. تجنب منح صلاحيات كاملة بشكل عام للمستخدمين (مثل ALL PRIVILEGES ON *.*
).
sql
-- سحب كافة الصلاحيات من المستخدم على جميع قواعد البيانات (يُنفذ بحذر)
REVOKE ALL PRIVILEGES ON *.* FROM 'servbay-demo'@'localhost';
-- منح صلاحيات محددة فقط (SELECT, INSERT, UPDATE) على قاعدة بيانات محددة
GRANT SELECT, INSERT, UPDATE ON mydatabase_servbay.* TO 'servbay-demo'@'localhost';
-- تحديث الصلاحيات
FLUSH PRIVILEGES;
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
الأسئلة الشائعة وحلولها (FAQ)
لا يمكن الاتصال بـ MariaDB
عند مواجهتك مشكلة في الاتصال بقاعدة بيانات MariaDB، اتبع الخطوات التالية لتحري الخلل:
- تحقق من تشغيل الخدمة: استخدم واجهة ServBay الرسومية لمعاينة حالة خدمة MariaDB، أو استخدم أمر
servbayctl
:bashإذا كانت الخدمة متوقفة، حاول تشغيلها.servbayctl status mariadb <version>
1 - تحقق من صحة معلومات الاتصال: تأكد من استخدام اسم المستخدم وكلمة المرور واسم المضيف (
localhost
) والمنفذ (3306
) أو مسار ملف socket (/Applications/ServBay/tmp/mysql.sock
) بشكل صحيح. - فحص إعدادات الجدار الناري: تأكد أن جدار الحماية في macOS لا يمنع عمليات الاتصال الخاصة بـ ServBay أو MariaDB. عادةً هذه ليست مشكلة على بيئة محلية، لكنها هامة عند الاتصال من أجهزة أخرى.
مشكلة كلمة المرور
إذا واجهت مشكلة كلمة مرور أو نسيت كلمة مرور مستخدم root، راجع دليل استعادة كلمات المرور في وثائق ServBay:
يدعم ServBay إعادة تعيين كلمات مرور root بسهولة لقواعد بيانات MariaDB وMySQL وPostgreSQL.
مشاكل الصلاحيات
إذا تمكنت من الاتصال بقاعدة البيانات ولكن لم تستطع تنفيذ بعض العمليات (كإنشاء الجداول أو إدخال بيانات)، فهذا غالبًا بسبب نقص الصلاحيات لدى المستخدم الحالي.
- تحقق من صلاحيات المستخدم الحالي:sqlاستبدل
SHOW GRANTS FOR 'your_username'@'localhost';
1your_username
باسم المستخدم الذي تستخدمه. - منح الصلاحيات المطلوبة حسب الحاجة: إذا كانت الصلاحيات غير كافية، استخدم اتصال بمستخدم يمتلك صلاحيات أوسع (مثل root) لمنح الصلاحيات المطلوبة وتحديثها.sql
GRANT ALL PRIVILEGES ON mydatabase_servbay.* TO 'servbay-demo'@'localhost'; FLUSH PRIVILEGES;
1
2
الخلاصة
تعتبر MariaDB عنصرًا أساسيًا وقويًا ضمن بيئة التطوير المحلية عبر ServBay. بفضل واجهات الإدارة والأدوات المدمجة في ServBay يمكنك تثبيت، إعداد، الاتصال، إدارة وتحسين وتأمين قاعدة بيانات MariaDB بكفاءة عالية. إن إتقان هذه العمليات يعد أمرًا ضروريًا لبناء تطبيقات ويب مستقرة وعالية الأداء. نأمل أن يكون هذا الدليل قد ساعدك على الاستفادة القصوى من إمكانيات MariaDB في ServBay، ومنحك قاعدة بيانات متينة لدعم سير عمل التطوير المحلي لديك.