تثبيت MySQL و MariaDB: دليل الإدارة الأساسية
تثبيت MySQL و MariaDB على Linux خطوة بخطوة، mysql_secure_installation، إنشاء قواعد البيانات والمستخدمين، أوامر SQL الأساسية، تكوين الوصول عن بُعد وضبط الأداء.
تثبيت PostgreSQL على Ubuntu/Debian وRHEL/CentOS، إنشاء المستخدمين وقواعد البيانات، أوامر SQL الأساسية، إعداد الاتصال عن بُعد واستراتيجيات النسخ الاحتياطي. دليل خطوة بخطوة.
يُعدّ PostgreSQL أحد أقوى أنظمة إدارة قواعد البيانات العلائقية مفتوحة المصدر في العالم. بفضل توافقه مع معايير ACID وأنواع البيانات المتقدمة ودعم JSON وقابلية التوسع القوية، يغطي نطاقاً واسعاً من حالات الاستخدام، من تطبيقات المؤسسات إلى المشاريع الصغيرة. يتناول هذا الدليل تثبيت PostgreSQL وإدارته الأساسية وتهيئته.
على أنظمة Ubuntu وDebian، يمكن تثبيت PostgreSQL من المستودعات الرسمية:
# تحديث قائمة الحزم
apt update
# تثبيت PostgreSQL
apt install -y postgresql postgresql-contrib
# التحقق من حالة الخدمة
systemctl status postgresql
# تفعيل التشغيل التلقائي
systemctl enable postgresql
للحصول على إصدار أحدث، يمكنك إضافة المستودع الرسمي لـ PostgreSQL:
# تثبيت الأدوات المطلوبة
apt install -y curl ca-certificates
# إضافة مفتاح توقيع PostgreSQL
curl -fsSL https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor -o /etc/apt/trusted.gpg.d/postgresql.gpg
# إضافة المستودع
echo 'deb https://apt.postgresql.org/pub/repos/apt '$(lsb_release -cs)'-pgdg main' > /etc/apt/sources.list.d/pgdg.list
# التحديث والتثبيت
apt update
apt install -y postgresql-16
# إضافة المستودع الرسمي لـ PostgreSQL
dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm
# تعطيل وحدة PostgreSQL المدمجة
dnf -qy module disable postgresql
# تثبيت PostgreSQL 16
dnf install -y postgresql16-server postgresql16-contrib
# تهيئة قاعدة البيانات
/usr/pgsql-16/bin/postgresql-16-setup initdb
# تشغيل الخدمة وتفعيلها
systemctl enable --now postgresql-16
# التحقق من حالة الخدمة
systemctl status postgresql-16
psql --version
# الإخراج: psql (PostgreSQL) 16.x
# معلومات الخدمة
psql -U postgres -c 'SELECT version();'
أثناء التثبيت، يُنشأ مستخدم النظام postgres. للاتصال بقاعدة البيانات:
# التبديل إلى مستخدم النظام postgres
su - postgres
# الاتصال بوحدة تحكم PostgreSQL
psql
# الاتصال مباشرة من root
sudo -u postgres psql
# الاتصال بقاعدة بيانات محددة
sudo -u postgres psql -d mydb
-- في وحدة تحكم PostgreSQL
-- إنشاء مستخدم جديد
CREATE USER appuser WITH PASSWORD 'كلمةمرورقوية123!';
-- إنشاء مستخدم خارق (استخدم بحذر)
CREATE USER adminuser WITH PASSWORD 'كلمةمرورالمدير!' SUPERUSER;
-- عرض قائمة المستخدمين
\du
-- تغيير كلمة مرور المستخدم
ALTER USER appuser WITH PASSWORD 'كلمةمرورجديدة456!';
-- منح صلاحية إنشاء قواعد البيانات
ALTER USER appuser CREATEDB;
-- إنشاء قاعدة بيانات
CREATE DATABASE myapp OWNER appuser ENCODING 'UTF8' LC_COLLATE 'ar_SA.UTF-8' LC_CTYPE 'ar_SA.UTF-8' TEMPLATE template0;
-- عرض قائمة قواعد البيانات
\l
-- الاتصال بقاعدة بيانات
\c myapp
-- منح صلاحيات كاملة للمستخدم
GRANT ALL PRIVILEGES ON DATABASE myapp TO appuser;
-- صلاحية المخطط (PostgreSQL 15+)
GRANT ALL ON SCHEMA public TO appuser;
-- حذف قاعدة بيانات
DROP DATABASE qaedat_qadima;
-- إنشاء جدول
CREATE TABLE users (
id SERIAL PRIMARY KEY,
username VARCHAR(50) NOT NULL UNIQUE,
email VARCHAR(100) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- إدراج بيانات
INSERT INTO users (username, email) VALUES ('ahmed', 'ahmed@example.com');
-- الاستعلام عن البيانات
SELECT * FROM users;
SELECT username, email FROM users WHERE id = 1;
-- تحديث البيانات
UPDATE users SET email = 'jadid@example.com' WHERE id = 1;
-- حذف البيانات
DELETE FROM users WHERE id = 5;
-- عرض قائمة الجداول
\dt
-- عرض هيكل الجدول
\d users
-- إنشاء فهرس
CREATE INDEX idx_users_email ON users(email);
بشكل افتراضي، يقبل PostgreSQL الاتصالات من localhost فقط. لتمكين الوصول عن بُعد، تحتاج إلى تعديل ملفين.
# البحث عن موقع ملف التهيئة
sudo -u postgres psql -c 'SHOW config_file;'
# التعديل
nano /etc/postgresql/16/main/postgresql.conf
# تغيير سطر listen_addresses
listen_addresses = '*'
# المنفذ (الافتراضي 5432)
port = 5432
nano /etc/postgresql/16/main/pg_hba.conf
# إضافة سطر للاتصالات عن بُعد (في نهاية الملف)
# TYPE DATABASE USER ADDRESS METHOD
host myapp appuser 192.168.1.0/24 scram-sha-256
host all all 0.0.0.0/0 scram-sha-256
# إعادة تشغيل الخدمة
systemctl restart postgresql
# فتح المنفذ باستخدام UFW
ufw allow 5432/tcp
# باستخدام iptables
iptables -A INPUT -p tcp --dport 5432 -j ACCEPT
تعريض منفذ PostgreSQL (5432) للإنترنت يُشكّل خطراً أمنياً. استخدم نفق SSH أو VPN كلما أمكن. إذا كان الوصول عن بُعد ضرورياً، قيّده بعناوين IP محددة.
# نسخ احتياطي لقاعدة بيانات واحدة
pg_dump -U postgres myapp > myapp_backup.sql
# تنسيق مضغوط (استعادة أسرع)
pg_dump -U postgres -Fc myapp > myapp_backup.dump
# نسخ احتياطي لجميع قواعد البيانات
pg_dumpall -U postgres > all_databases.sql
# نسخ احتياطي من خادم بعيد
pg_dump -h 192.168.1.100 -U postgres myapp > myapp_remote.sql
# الاستعادة من تنسيق SQL
psql -U postgres myapp < myapp_backup.sql
# الاستعادة من التنسيق المضغوط
pg_restore -U postgres -d myapp myapp_backup.dump
# استعادة جميع قواعد البيانات
psql -U postgres < all_databases.sql
# تعديل crontab
crontab -e
# أخذ نسخة احتياطية كل ليلة في 02:00
0 2 * * * pg_dump -U postgres myapp | gzip > /backup/myapp_$(date +\%Y\%m\%d).sql.gz
# حذف النسخ الاحتياطية الأقدم من 30 يوماً
0 3 * * * find /backup -name 'myapp_*.sql.gz' -mtime +30 -delete
# تشغيل الخدمة
systemctl start postgresql
# إيقاف الخدمة
systemctl stop postgresql
# إعادة تشغيل الخدمة
systemctl restart postgresql
# إعادة تحميل التهيئة (دون إعادة تشغيل)
systemctl reload postgresql
# عرض السجلات
journalctl -u postgresql -f
tail -f /var/log/postgresql/postgresql-16-main.log
PostgreSQL نظام إدارة قواعد بيانات موثوق وعالي الأداء. بعد التثبيت، لا تهمل تهيئة الأمان، وقم بإجراء نسخ احتياطية منتظمة، وتأكد من تهيئة أساليب المصادقة بشكل صحيح للوصول عن بُعد. يعمل PostgreSQL بسلاسة على خوادم REXE ويوفر أداءً موثوقاً تحت حركة المرور العالية.
يوفر PostgreSQL توافقاً كاملاً مع ACID وأنواع بيانات متقدمة (JSON وJSONB والمصفوفات وhstore) ووظائف النوافذ وقابلية توسع قوية. يوفر MySQL عموماً تثبيتاً وإدارة أبسط، بينما يتفوق PostgreSQL في الاستعلامات المعقدة ومجموعات البيانات الكبيرة. يُوصى بـ PostgreSQL للمشاريع الجديدة.
اتصل بوحدة تحكم PostgreSQL باستخدام sudo -u postgres psql، ثم نفّذ ALTER USER postgres WITH PASSWORD 'كلمةمرورجديدة'; لتغيير كلمة مرور مستخدم النظام، استخدم sudo passwd postgres.
تحقق من ثلاثة أشياء: 1) تأكد من تعيين listen_addresses = '*' في postgresql.conf، 2) تحقق من إضافة سطر host لعنوان IP المعني في pg_hba.conf، 3) تأكد من فتح المنفذ 5432 في جدار الحماية (ufw status أو iptables -L). تذكر إعادة تشغيل الخدمة بعد إجراء التغييرات.
يأخذ pg_dump لقطة متسقة وهو موثوق جداً. للقواعد الكبيرة، استخدم -Fc (التنسيق المخصص)؛ يدعم هذا التنسيق الاستعادة المتوازية وينتج أحجام ملفات أصغر. للأنظمة الحيوية، فكّر أيضاً في أساليب نسخ احتياطي أكثر تقدماً مثل أرشفة WAL أو النسخ المتدفق.
يستخدم PostgreSQL المنفذ 5432 افتراضياً. لتغييره، حدّث السطر port = 5432 في /etc/postgresql/16/main/postgresql.conf برقم المنفذ المطلوب وأعد تشغيل الخدمة. لا تنسَ تحديث pg_hba.conf وسلاسل الاتصال أيضاً.
نعم، يمكن لكل إصدار العمل على منفذ مختلف. على سبيل المثال، يمكن لـ PostgreSQL 14 العمل على المنفذ الافتراضي 5432 وPostgreSQL 16 على المنفذ 5433. لكل إصدار دليل بيانات خاص به ووحدة خدمة خاصة. استخدم الأمر pg_lsclusters لعرض جميع المجموعات الموجودة.
تثبيت MySQL و MariaDB على Linux خطوة بخطوة، mysql_secure_installation، إنشاء قواعد البيانات والمستخدمين، أوامر SQL الأساسية، تكوين الوصول عن بُعد وضبط الأداء.
تثبيت Redis و Memcached على Ubuntu/Debian، الأوامر الأساسية، إعدادات الاستمرارية، تكوين TTL، مقارنة Redis مقابل Memcached، وتكامل التطبيقات.
دليل خطوة بخطوة لتثبيت phpMyAdmin على Apache وNginx، وإعداد SSL، وإدارة المستخدمين، وتقييد IP، وتعزيز الأمان.