دليل تثبيت PostgreSQL وإدارته الأساسية
تثبيت PostgreSQL على Ubuntu/Debian وRHEL/CentOS، إنشاء المستخدمين وقواعد البيانات، أوامر SQL الأساسية، إعداد الاتصال عن بُعد واستراتيجيات النسخ الاحتياطي. دليل خطوة بخطوة.
جدول المحتويات
دليل تثبيت PostgreSQL وإدارته الأساسية
يُعدّ PostgreSQL أحد أقوى أنظمة إدارة قواعد البيانات العلائقية مفتوحة المصدر في العالم. بفضل توافقه مع معايير ACID وأنواع البيانات المتقدمة ودعم JSON وقابلية التوسع القوية، يغطي نطاقاً واسعاً من حالات الاستخدام، من تطبيقات المؤسسات إلى المشاريع الصغيرة. يتناول هذا الدليل تثبيت PostgreSQL وإدارته الأساسية وتهيئته.
التثبيت على Ubuntu/Debian
التثبيت من مستودع الحزم
على أنظمة Ubuntu وDebian، يمكن تثبيت PostgreSQL من المستودعات الرسمية:
# تحديث قائمة الحزم
apt update
# تثبيت PostgreSQL
apt install -y postgresql postgresql-contrib
# التحقق من حالة الخدمة
systemctl status postgresql
# تفعيل التشغيل التلقائي
systemctl enable postgresql
استخدام المستودع الرسمي لـ 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
التثبيت على RHEL/CentOS/AlmaLinux
# إضافة المستودع الرسمي لـ 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
التحقق من إصدار PostgreSQL
psql --version
# الإخراج: psql (PostgreSQL) 16.x
# معلومات الخدمة
psql -U postgres -c 'SELECT version();'
التبديل إلى مستخدم postgres والاتصال
أثناء التثبيت، يُنشأ مستخدم النظام 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;
أوامر SQL الأساسية
-- إنشاء جدول
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 فقط. لتمكين الوصول عن بُعد، تحتاج إلى تعديل ملفين.
1. تعديل postgresql.conf
# البحث عن موقع ملف التهيئة
sudo -u postgres psql -c 'SHOW config_file;'
# التعديل
nano /etc/postgresql/16/main/postgresql.conf
# تغيير سطر listen_addresses
listen_addresses = '*'
# المنفذ (الافتراضي 5432)
port = 5432
2. تعديل pg_hba.conf
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
3. إعادة تشغيل الخدمة وتهيئة جدار الحماية
# إعادة تشغيل الخدمة
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
# نسخ احتياطي لقاعدة بيانات واحدة
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
النسخ الاحتياطي التلقائي باستخدام Cron
# تعديل 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 ويوفر أداءً موثوقاً تحت حركة المرور العالية.
مقالات ذات صلة
تثبيت MySQL و MariaDB: دليل الإدارة الأساسية
تثبيت MySQL و MariaDB على Linux خطوة بخطوة، mysql_secure_installation، إنشاء قواعد البيانات والمستخدمين، أوامر SQL الأساسية، تكوين الوصول عن بُعد وضبط الأداء.
تثبيت Redis و Memcached: دليل طبقة التخزين المؤقت
تثبيت Redis و Memcached على Ubuntu/Debian، الأوامر الأساسية، إعدادات الاستمرارية، تكوين TTL، مقارنة Redis مقابل Memcached، وتكامل التطبيقات.
تثبيت phpMyAdmin والوصول الآمن
دليل خطوة بخطوة لتثبيت phpMyAdmin على Apache وNginx، وإعداد SSL، وإدارة المستخدمين، وتقييد IP، وتعزيز الأمان.