دليل النشر

‎MariaDB على VPS: SQL حر وسريع وتحت السيطرة

انشر على VPS Cloud ←

دليل عملي

‎MariaDB على VPS: SQL حر وسريع وتحت السيطرة

قواعد البيانات10 دقائق للقراءةعدد الخطوات: 9

‎يبقى MariaDB أساسًا متينًا لـ WordPress وDolibarr وPrestaShop والعديد من تطبيقات PHP. على VPS من ServOrbit، تحتفظ بالتحكم في الحسابات ووحدات التخزين والنسخ الاحتياطية وأمان الشبكة — دون الاعتماد على عرض استضافة مشتركة غامض. يغطي هذا الدليل التثبيت الكامل وضبط أداء InnoDB والنسخ الاحتياطية الآلية والوصول البعيد الآمن.

المحتويات· ‎لماذا تستضيف MariaDB على VPS؟1/10
  1. 01‎لماذا تستضيف MariaDB على VPS؟
  2. 02‎ما الذي يمكنك فعله باستخدام MariaDB على VPS الخاص بك
  3. 03‎المتطلبات الأساسية
  4. 04‎ثبّت MariaDB على VPS من ServOrbit
  5. 05‎النسخ الاحتياطية الآلية باستخدام mariadb-dump
  6. 06‎التحسين: تكوين InnoDB
  7. 07‎الوصول البعيد الآمن
  8. 08‎استكشاف الأخطاء وإصلاحها
  9. 09‎MariaDB 11.4 LTS مقابل MariaDB 10.11 LTS مقابل MySQL 8.0
  10. 10‎الوثائق الرسمية

‎لماذا تستضيف MariaDB على VPS؟

‎MariaDB هو تفرّع مجتمعي من MySQL، مفتوح المصدر 100%، معروف بأدائه وموثوقيته وتوافقه الكامل مع تطبيقات MySQL القائمة. باستضافته على VPS، يحرّرك من قيود الاستضافة المشتركة: لا حدود مفروضة على الاتصالات، ولا حصص اعتباطية على حجم قواعد البيانات، مع إمكانية ضبط معاملات محرّك InnoDB بدقة حسب حِملك الفعلي. تحتفظ بالتحكم في نسخك الاحتياطية ومستخدميك وأمان الشبكة، دون الاعتماد على مزوّد خارجي في كل عملية صيانة.

‎تتوفر اليوم نسختان LTS: MariaDB 11.4 LTS (صدرت في مايو 2024، دعم مضمون حتى 2028+) وMariaDB 10.11 LTS (دعم حتى فبراير 2028). كلتاهما مستقرتان للإنتاج؛ تتميز 11.4 بالتخلي النهائي عن عميل mysql لصالح mariadb، وتحسينات في توازي الخيوط وInnoDB.

‎ما الذي يمكنك فعله باستخدام MariaDB على VPS الخاص بك

  • ‎استضافة عدة قواعد بيانات لمشاريع أو عملاء مختلفين على نسخة واحدة، مع العزل لكل مستخدم MariaDB
  • ‎توصيل تطبيقك المبني على Laravel أو Symfony أو WordPress أو أي إطار عمل آخر عبر المنفذ القياسي 3306، محليًا أو من خادم بعيد مؤمَّن بجدار حماية
  • ‎إجراء نسخ احتياطية مؤتمتة باستخدام mariadb-dump وتخزينها مضغوطة مع احتفاظ قابل للتكوين
  • ‎إعداد النسخ المتماثل بنمط السيد-التابع لضمان التوفر العالي أو تخفيف عمليات القراءة المكثفة
  • ‎تحسين الأداء بضبط المتغيّرات الرئيسية مثل innodb_buffer_pool_size وinnodb_log_file_size وmax_connections مباشرةً في /etc/mysql/conf.d/
  • ‎إدارة قواعد بياناتك عبر واجهات رسومية مثل phpMyAdmin أو Adminer أو DBeaver متصلة عن بُعد عبر نفق SSH آمن

‎المتطلبات الأساسية

‎قبل البدء، تأكد من توفر العناصر التالية:

‎- VPS من ServOrbit: ذاكرة وصول عشوائي لا تقل عن 2 غيغابايت (الاستخدام الخفيف أو الاختبار)، يُوصى بـ 4 غيغابايت في بيئة الإنتاج. يستهلك MariaDB ذاته موارد قليلة، لكن مجموعة ذاكرة التخزين المؤقت InnoDB (innodb_buffer_pool_size) يجب أن تمثل 60 إلى 70% من ذاكرة الوصول العشوائي المتاحة لتكون فعّالة.
‎- وصول SSH root أو sudo إلى VPS الخاص بك.
‎- إصدار MariaDB حديث: MariaDB 11.4 LTS (مايو 2024، دعم حتى 2028+) أو MariaDB 10.11 LTS (دعم حتى فبراير 2028). تجنّب 10.6 وما دونها في الإنتاج: فهي تقترب من نهاية الدعم.
‎- جدار حماية نشط (UFW أو ما يعادله): يجب ألا يُعرض المنفذ 3306 مباشرةً على الإنترنت أبدًا.

‎ثبّت MariaDB على VPS من ServOrbit

  1. ‎اطلب VPS Cloud من ServOrbit

    ‎توجّه إلى /vps-cloud واختر العرض المناسب لحِملك. بالنسبة لنسخة MariaDB للإنتاج، يُشكّل VPS بـ 2 vCPU و4 غيغابايت من ذاكرة RAM نقطة انطلاق جيدة. أكمل الطلب ودوّن بيانات اتصال SSH (IP، المستخدم، كلمة المرور أو المفتاح) المُرسلة عبر البريد الإلكتروني.

  2. ‎الاتصال بـ VPS عبر SSH

    ‎افتح طرفية واتصل بـ VPS الخاص بك:

    ssh root@<your-ip>

    ‎إذا كنت تستخدم مفتاح SSH بدلاً من كلمة مرور:

    ssh -i ~/.ssh/my_key root@<your-ip>

    ‎بعد الاتصال، تحقق من إصدار النظام والموارد المتاحة: free -m للذاكرة، nproc لعدد الأنوية.

  3. ‎الوصول إلى Marketplace في مساحة العميل

    ‎سجّل الدخول إلى مساحة العميل في ServOrbit، ثم انتقل إلى قسم «VPS الخاصة بي». اختر VPS المطلوب حديثًا وانقر على تبويب «Marketplace» للوصول إلى كتالوج التطبيقات المتاحة للتثبيت بنقرة واحدة.

  4. ‎اختيار MariaDB وإطلاق التثبيت

    ‎في Marketplace، ابحث عن «MariaDB» وانقر على بطاقة التطبيق. تحقّق من الإصدار المعروض (يُوصى بـ MariaDB 10.11 LTS أو 11.4 LTS)، ثم انقر على «تثبيت». يهيّئ النظام MariaDB تلقائيًا على VPS الخاص بك، ويضبط خدمة systemd، ويولّد كلمة مرور root عشوائية تُبلَّغ لك في نهاية التثبيت.

  5. ‎تأمين التثبيت باستخدام mysql_secure_installation

    ‎من جلسة SSH الخاصة بك، نفّذ:

    mysql_secure_installation

    ‎يرشدك هذا السكربت التفاعلي إلى تعيين كلمة مرور root أو تقويتها، وإزالة المستخدمين المجهولين، وتعطيل تسجيل دخول root عن بُعد، وحذف قاعدة بيانات الاختبار. هذه الخطوات ضرورية قبل أي استخدام إنتاجي.

  6. ‎الاتصال بشل MariaDB

    ‎منذ MariaDB 11، يُسمى العميل mariadb (لم يعد mysql). كلاهما يعمل في الإصدار 10.11، لكن mariadb هو الأمر القانوني:

    mariadb -u root -p

    ‎أدخل كلمة مرور root المحددة في الخطوة السابقة. أنت الآن في شل SQL التفاعلي (MariaDB [(none)]>).

  7. ‎إنشاء قاعدة بيانات بترميز utf8mb4

    ‎أنشئ دائمًا قواعد البيانات بترميز utf8mb4 وترتيب utf8mb4_unicode_ci للتعامل الصحيح مع جميع الأحرف (بما فيها الرموز التعبيرية):

    CREATE DATABASE my_app CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
    SHOW DATABASES;

    ‎تؤكد SHOW DATABASES; ظهور قاعدة البيانات في القائمة.

  8. ‎إنشاء مستخدم تطبيق مخصص

    ‎لا تستخدم root أبدًا من تطبيقك. أنشئ مستخدمًا محدودًا بقاعدة بياناتك:

    CREATE USER 'appuser'@'localhost' IDENTIFIED BY 'strong_password';
    GRANT ALL PRIVILEGES ON my_app.* TO 'appuser'@'localhost';
    FLUSH PRIVILEGES;

    ‎يمكن لتطبيقك الآن الاتصال عبر المضيف 127.0.0.1، المنفذ 3306، بهذه البيانات.

  9. ‎التحقق من أن MariaDB يبدأ تلقائيًا

    ‎تأكد من إعادة تشغيل الخدمة بعد إعادة تشغيل VPS:

    systemctl enable mariadb
    systemctl status mariadb

    ‎يجب أن تظهر النتيجة active (running). إذا لم تكن الخدمة مفعّلة عند بدء التشغيل، يقوم systemctl enable mariadb بتكوينها.

‎النسخ الاحتياطية الآلية باستخدام mariadb-dump

‎قاعدة بيانات بدون نسخ احتياطية آلية هي قنبلة موقوتة. ينشئ السكربت التالي نسخة احتياطية مضغوطة كل ليلة مع احتفاظ لمدة 7 أيام.

‎أنشئ سكربت النسخ الاحتياطي في /usr/local/bin/backup-mariadb.sh:

#!/bin/bash
BACKUP_DIR="/var/backups/mariadb"
DATE=$(date +%Y%m%d_%H%M%S)
DB_USER="root"
DB_PASS="your_root_password"
RETENTION=7

mkdir -p "$BACKUP_DIR"

# List all databases (excluding system ones)
DATABASES=$(mariadb -u"$DB_USER" -p"$DB_PASS" -e "SHOW DATABASES;" 2>/dev/null | \
  grep -vE "^(Database|information_schema|performance_schema|mysql|sys)$")

for DB in $DATABASES; do
  mariadb-dump \
    -u"$DB_USER" -p"$DB_PASS" \
    --single-transaction \
    --quick \
    --routines \
    --triggers \
    "$DB" | gzip > "$BACKUP_DIR/${DB}_${DATE}.sql.gz"
done

# Remove backups older than RETENTION days
find "$BACKUP_DIR" -name "*.sql.gz" -mtime +$RETENTION -delete

‎اجعل السكربت قابلاً للتنفيذ وأضف مهمة cron لتشغيله كل ليلة الساعة 02:00:

chmod +x /usr/local/bin/backup-mariadb.sh
crontab -e

‎أضف السطر التالي:

0 2 * * * /usr/local/bin/backup-mariadb.sh >> /var/log/backup-mariadb.log 2>&1

‎لاستعادة قاعدة بيانات من نسخة احتياطية:

zcat /var/backups/mariadb/my_app_20261007_020000.sql.gz | mariadb -u root -p my_app

‎التحسين: تكوين InnoDB

‎التكوين الافتراضي لـ MariaDB محافظ جدًا (بضعة عشرات من الميغابايت لـ innodb_buffer_pool_size). على VPS للإنتاج، اضبط معاملات InnoDB للاستفادة الكاملة من الذاكرة المتاحة.

‎أنشئ الملف /etc/mysql/conf.d/performance.cnf:

[mysqld]
# InnoDB buffer pool: 60-70% of total RAM
# On 4 GB RAM → 2.5 GB
innodb_buffer_pool_size = 2560M

# Log file size (recommended: 25% of pool)
innodb_log_file_size = 640M

innodb_log_files_in_group = 2

# Query cache disabled on MariaDB 10.3+
query_cache_size = 0
query_cache_type = 0

max_connections = 150

slow_query_log = 1
long_query_time = 1
slow_query_log_file = /var/log/mysql/mariadb-slow.log

‎اضبط innodb_buffer_pool_size وفقًا لذاكرة وصول عشوائي VPS الخاص بك: على 2 غيغابايت، استخدم 1228M؛ على 8 غيغابايت، استخدم 5632M.

‎ثم أعد تشغيل MariaDB لتطبيق التكوين:

systemctl restart mariadb

‎تحقق من تطبيق المعاملات:

SHOW VARIABLES LIKE 'innodb_buffer_pool_size';
SHOW VARIABLES LIKE 'query_cache_size';

‎الوصول البعيد الآمن

‎بشكل افتراضي، لا يستمع MariaDB إلا على 127.0.0.1 — وهذا هو التكوين الآمن. للوصول من تطبيق على خادم آخر، توجد طريقتان.

‎الخيار الأول — نفق SSH (موصى به، دون فتح المنفذ 3306)

‎من جهازك المحلي أو خادم التطبيق:

ssh -L 3306:127.0.0.1:3306 -N root@<mariadb-vps-ip>

‎يتصل تطبيقك بعد ذلك بـ 127.0.0.1:3306 محليًا — ويشفّر نفق SSH حركة البيانات. أضف -f لوضع النفق في الخلفية.

‎الخيار الثاني — اتصال بين VPS مع السماح بـ IP محددة

‎إذا كان تطبيقك يعمل على VPS آخر من ServOrbit، افتح المنفذ فقط لعنوان IP الخاص بذلك الخادم:

# في /etc/mysql/conf.d/network.cnf
[mysqld]
bind-address = 0.0.0.0
# السماح فقط لـ IP خادم التطبيق
ufw allow from <app-ip> to any port 3306

‎أنشئ مستخدم MariaDB محدودًا بـ IP خادم التطبيق:

CREATE USER 'app'@'<app-ip>' IDENTIFIED BY 'strong_password';
GRANT ALL PRIVILEGES ON my_app.* TO 'app'@'<app-ip>';
FLUSH PRIVILEGES;

‎استكشاف الأخطاء وإصلاحها

‎فيما يلي أكثر أربعة أخطاء شيوعًا عند تشغيل MariaDB على VPS، وكيفية حلها.

‎1. Can't connect to local MariaDB server through socket

‎خدمة MariaDB لا تعمل أو المقبس غير موجود.

systemctl status mariadb
systemctl start mariadb

‎إذا رفضت الخدمة البدء، اقرأ السجلات:

journalctl -xe -u mariadb --no-pager | tail -40

‎2. Too many connections

‎وصل عدد الاتصالات المتزامنة إلى الحد الأقصى. زد max_connections في /etc/mysql/conf.d/performance.cnf ثم أعد التحميل:

systemctl reload mariadb

‎3. Table '<name>' is marked as crashed

‎جدول MyISAM تالف. أصلحه:

mysqlcheck -u root -p --repair my_app table_name

‎4. Access denied for user 'root'@'localhost'

‎كلمة مرور root منسية. أعد الضبط في وضع تخطي الأذونات:

systemctl stop mariadb
mysqld_safe --skip-grant-tables &
mariadb -u root

‎ثم في شل MariaDB:

FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
FLUSH PRIVILEGES;
EXIT;

‎أعد تشغيل MariaDB بشكل طبيعي: systemctl restart mariadb.

‎MariaDB 11.4 LTS مقابل MariaDB 10.11 LTS مقابل MySQL 8.0

مرّر الجدول أفقيًا

‎المعيار‎MariaDB 11.4 LTS‎MariaDB 10.11 LTS‎MySQL 8.0
‎الرخصة‎GPL v2 (مجتمعية)‎GPL v2 (مجتمعية)‎GPL v2 / تجارية (Oracle)
‎الدعم حتى‎2028+ (LTS، مايو 2024)‎فبراير 2028 (LTS)‎أبريل 2026 (قريب من نهاية الدعم)
‎عميل CLI‎`mariadb` (mysql مهمل)‎`mariadb` و`mysql`‎`mysql`
‎أداء InnoDB‎محسَّن (threadpool مدمج)‎مستقر ومُجرَّب‎جيد، محسَّن من Oracle
‎توافق MySQL‎عالٍ جدًا (drop-in)‎عالٍ جدًا (drop-in)‎مرجعي
‎JSON مدمج‎نعم (من MariaDB 10.2)‎نعم‎نعم (أعمدة JSON)
‎التوصية‎المشاريع الجديدة، الترحيل من MySQL 8.0‎الإنتاج الحالي، أقصى استقرار‎في حالة تبعية Oracle أو سحابية محددة

‎لا تعرّض المنفذ 3306 مباشرةً على الإنترنت أبدًا: اضبط جدار الحماية للسماح باتصالات MariaDB محليًا فقط (127.0.0.1) أو عبر نفق SSH. فعّل أيضًا سجل الاستعلامات البطيئة (slow_query_log = 1، long_query_time = 1) من البداية لتحديد الاستعلامات التي تحتاج إلى تحسين قبل أن تؤثر على مستخدميك.

‎الوثائق الرسمية

‎للإعدادات المتقدمة والخيارات الخاصة بالأداة وتغييرات الإصدارات، راجع الوثائق الرسمية لـ MariaDB. يغطّي هذا الدليل النشر على VPS من ServOrbit؛ وتبقى وثائق الناشر المرجع للإعدادات الدقيقة.

انشر MariaDB في دقائق على VPS Cloud من ServOrbit

استفد من VPS عالي الأداء مع تثبيت MariaDB بنقرة واحدة، ووصول root كامل ودعم مضمّن — صيغة شهرية دون التزام، بدءًا من 99 درهم/شهر.

بحاجة إلى مساعدة؟

تصفّح مركز المساعدة والأسئلة الشائعة، أو تواصل مع فريقنا — معاودة اتصال أو WhatsApp أو بريد إلكتروني. الدعم بـالعربية والفرنسية والإنجليزية.

راسلنا على WhatsAppيُفتح في علامة تبويب جديدة