البرمجة

إنشاء قاعدة بيانات ووردبريس

جدول المحتوى

إنشاء قاعدة بيانات لووردبريس: الدليل الشامل لإعداد بنية بيانات قوية وآمنة لموقعك 

ملخص تنفيذي

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


1. مقدمة في قواعد البيانات العلائقية

تستخدم منصة ووردبريس نظام MySQL‎ أو MariaDB‎ لتخزين البيانات بطريقة علائقية. يقوم هذا النظام على جداول مترابطة من خلال مفاتيح أولية وأجنبية، تتيح استخراج المعلومات بسرعة وكفاءة.

  • الجداول: تمثّل كيانات مثل المقالات، الصفحات، التعليقات.

  • الأعمدة: تمثّل خصائص الكيان مثل العنوان، المحتوى، التاريخ.

  • الفهارس: تُسرّع عمليات البحث والفرز.

  • المخططات: تنظيم منطقي للجداول في قاعدة واحدة.

فهم هذا الأساس ضروري لضبط ووردبريس بحيث يستجيب لأعداد كبيرة من الزوار من دون عناء.


2. متطلبات النظام والتهيئة المبدئية

2.1 إصدارات MySQL و MariaDB المدعومة

  • MySQL ‎‎8.0‎ وما بعدها يُوصى بها لأفضل أداء.

  • MariaDB ‎10.5‎ وما بعدها بديل مفتوح المصدر سريع التطوّر.

2.2 موارد الخادم

نوع الموقع ذاكرة RAM مخصّصة نوى المعالج حجم قاعدة البيانات المتوقع
مدونة شخصية ‎1 GB‎ ‎1 vCPU‎ < ‎200 MB‎
مجلة إخبارية متوسطة ‎4 GB‎ ‎2 vCPU‎ ‎1‑5 GB‎
متجر إلكتروني ضخم ‎8 GB‎+ ‎4 vCPU‎+ ‎>10 GB‎

3. إنشاء قاعدة البيانات خطوة بخطوة

3.1 تسجيل الدخول إلى خادم قواعد البيانات

استخدم عميل الطرفية الآمن:

bash
mysql -u root -p

3.2 إنشاء قاعدة بيانات بتشفير UTF‑8

sql
CREATE DATABASE wp_site CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

يسمح utf8mb4 بتخزين الرموز التعبيرية والعلامات متعددة اللغات، وهو معيار ووردبريس منذ الإصدار ‎4.2‎.

3.3 إنشاء مستخدم مخصّص ومنحه الصلاحيات الدنيا الضرورية

sql
CREATE USER 'wp_user'@'localhost' IDENTIFIED BY 'S3cur3P@ss!'; GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, INDEX, DROP ON wp_site.* TO 'wp_user'@'localhost'; FLUSH PRIVILEGES;

تجنب منح صلاحيات SUPER أو GRANT OPTION للمستخدم التطبيقي لتقليل خطر الاستغلال.

3.4 تعديل ملف ‎wp‑config.php‎

php
define('DB_NAME', 'wp_site'); define('DB_USER', 'wp_user'); define('DB_PASSWORD', 'S3cur3P@ss!'); define('DB_HOST', '127.0.0.1'); define('DB_CHARSET', 'utf8mb4'); define('DB_COLLATE', '');

تعيين المضيف على ‎127.0.0.1‎ (بدل ‎localhost‎) يجبر الاتصال على ‏TCP/IP‏ ويُجنّب مشاكل ‎socket‎ في بعض البيئات.


4. ضبط الأداء

4.1 ملفات الضبط الرئيسة

  • innodb_buffer_pool_size‎: خصّص ‎60‑70 %‎ من الذاكرة المتاحة لخدمة المواقع كثيفة القراءة.

  • query_cache_type‎: موقوف في MySQL ‎8‎، لا تعتمد عليه.

  • table_open_cache‎: ارفع القيمة تدريجيًا مع زيادة عدد الجداول والإضافات.

4.2 الفهارس المخصّصة

الإضافات كثيفة البيانات مثل WooCommerce تضيف حقولًا ميتا بكثافة؛ أنشئ فهارس مركّبة لجداول ‎wp_postmeta‎ لتحسين الاستعلامات الشائعة:

sql
ALTER TABLE wp_postmeta ADD INDEX meta_key_value (meta_key(191), meta_value(191));

5. الأمان الطبقي لقاعدة البيانات

5.1 العزل الشبكي

  • السماح بالاتصال على المنفذ ‎3306‎ من ‎localhost‎ فقط باستخدام جدار ناري.

  • في الخوادم الموزّعة، استخدم شبكات خاصة أو نفق ‎SSH‎.

5.2 التشفير أثناء النقل

  • TLS‎ بين خادم الويب وخادم MySQL عند الفصل بينهما.

  • شهادات موقّعة ذاتيًا أو صادرة من سلطة موثوقة.

5.3 التشفير أثناء السكون

  • innodb_encrypt_tables‎ لتشفير الجداول الحساسة.

  • دمج مع حلول تشفير قرص كاملة مثل LUKS أو BitLocker.


6. النسخ الاحتياطي والاستعادة

6.1 الاستراتيجية المثلى

  • نسخ كامل يومي + تفاضلي ساعي لملفات ‎binlog‎.

  • الاحتفاظ بنقاط استعادة لا تقل عن ‎30‎ يومًا.

  • التخزين خارج الموقع Off‑site أو على ‎S3‎ المتوافق.

6.2 أدوات التنفيذ

  • mysqldump --single-transaction‎ للمواقع الصغيرة.

  • mysqlpump‎ أداء أسرع للخوادم متوسطة الحجم.

  • Percona XtraBackup‎ للنسخ الحي على قواعد بيانات ضخمة.

6.3 اختبار الاستعادة الدورية

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


7. الترحيل وتغيير النطاق

7.1 تصدير القاعدة

bash
mysqldump -u root -p wp_site > wp_site.sql

7.2 استيرادها في الخادم الجديد

bash
mysql -u root -p new_db < wp_site.sql

7.3 تحديث الروابط الصلبة Serialized

استخدم WP‑CLI:

bash
wp search-replace 'old-domain.com' 'new-domain.com' --skip-columns=guid

يحافظ الأمر على تماسك الحقول المتسلسلة التي تُفسدها أدوات البحث والاستبدال التقليدية.


8. مراقبة الصحة والأداء

عنصر المراقبة الأداة المقترحة عتبة التنبيه
استهلاك ‎CPU‎ ‎top‎، ‎htop‎ >‎80 %‎ لـ ‎15‎ دقيقة
زمن الاستجابة ‎SELECT‎ ‎Percona PMM‎ ‎>100 ms‎
حجم ‎ibdata1‎ ‎du -h‎ نمو >‎10 %‎ شهريًا
أخطاء ‎InnoDB‎ ‎/var/log/mysql/error.log‎ أي ظهور جديد

المراقبة الاستباقية تمنع السقوط المفاجئ وتقلل زمن التعطل.


9. التحسين للتوسع الأفقي

9.1 التقسيم المنطقي (Sharding)

فصل جداول الجلسات أو التتبع إلى قاعدة أخرى يقلّل تنافس الأقفال.

9.2 القراءة من نسخة طبق الأصل

تكوين MySQL Replication يتيح توجيه استعلامات القراءة المكثفة إلى خوادم تابعة.

9.3 التخزين المؤقت الخارجي

دمج Redis Object Cache يخفض ضغط القاعدة بما يصل إلى ‎70 %‎ في المواقع الضخمة.


10. ختام تقني

إن إنشاء قاعدة بيانات لووردبريس ليس مجرد عملية «التالي، التالي، إنهاء». إنما هو مشروع هندسي يتطلب فهمًا لبنية البيانات، وتخطيطًا لتخصيص الموارد، وتطبيقًا لمعايير الأمان والنسخ الاحتياطي، ورؤية مستقبلية للتوسع. باتباع الخطوات والممارسات الموضّحة أعلاه، ستزداد موثوقية موقعك وسرعة استجابته، وتضمن حماية أصولك الرقمية على المدى الطويل.


المراجع

  1. WordPress.org Documentation – Database Setup Guide.

  2. MySQL 8.0 Reference Manual – Security and Performance Tuning.