PostgreSQL: كيفية تثبيت PostgreSQL وإجراء أول اتصال

آخر تحديث: 2026-08-26

تثبيت PostgreSQL وإجراء أول اتصال هو الخطوة الأولى في تعلمه — هذه المقالة تشغل نسخة PG عاملة بأسرع طريقة ممكنة.

1. ما ستتعلمه


2. قصة حقيقية لموظف جديد

(1) المشكلة: تشغيل قاعدة البيانات في 30 دقيقة

انضم Bob للتو إلى شركة تجارة إلكترونية. طلب منه مديره إعداد قاعدة بيانات تطوير PostgreSQL محلية في غضون 30 دقيقة. كان Bob قد استخدم MySQL فقط من قبل وكان جديدًا تمامًا على PG:

(2) Docker + DBeaver للإنقاذ

تثبيت PostgreSQL باستخدام Docker هو أسرع طريقة — أمر واحد، بدون متاعب خاصة بالنظام:

BASH
# سحب وتشغيل PostgreSQL 17 في Docker
docker run --name my-postgres \
  -e POSTGRES_PASSWORD=mysecretpassword \
  -e POSTGRES_USER=bob \
  -e POSTGRES_DB=dev_shop \
  -p 5432:5432 \
  -d postgres:17

# التحقق من أن الحاوية قيد التشغيل
docker ps | grep my-postgres

(3) النتيجة


3. مقارنة طرق التثبيت

الطريقة المزايا العيوب الأنسب لـ
Docker سريع، نظيف، قابل للتكرار، هدم بأمر واحد يتطلب Docker أولاً بيئات التطوير (موصى به)
مثبت Windows تثبيت رسومي، تسجيل تلقائي كخدمة نظام إزالة غير نظيفة، إدارة إصدارات صعبة مطوري Windows
macOS Homebrew تثبيت CLI، تبديل إصدارات سهل يتطلب إلمامًا بـ Homebrew مطوري macOS
مدير حزم Linux تكامل محلي، أفضل أداء أوامر مختلفة لكل توزيعة خوادم Linux / تطوير
خدمة سحابية صفر عمليات، نسخ احتياطي تلقائي يكلف مالاً، زمن انتقال الشبكة الإنتاج
100%
graph TB
    START[اختر طريقة التثبيت] --> Q1{تحتاج أداء<br/>إنتاجي؟}
    Q1 -->|نعم| NAT[تثبيت محلي<br/>مدير حزم Linux]
    Q1 -->|لا| Q2{لديك Docker<br/>بالفعل؟}
    Q2 -->|نعم| DOCKER[تثبيت Docker<br/>دقيقتان]
    Q2 -->|لا| Q3{نظام التشغيل؟}
    Q3 -->|Windows| WIN[مثبت Windows<br/>تنزيل EDB]
    Q3 -->|macOS| BREW[تثبيت Homebrew<br/>brew install postgresql@17]
    Q3 -->|Linux| APT[تثبيت APT/YUM<br/>postgresql-17]

4. تثبيت Docker (موصى به)

(1) خطوات التثبيت

(1) ▶ مثال

BASH
# الخطوة 1: سحب صورة PostgreSQL 17
docker pull postgres:17

# الخطوة 2: تشغيل الحاوية بإعدادات مخصصة
docker run --name pg-dev \
  -e POSTGRES_USER=devuser \
  -e POSTGRES_PASSWORD=devpass123 \
  -e POSTGRES_DB=shopdb \
  -p 5432:5432 \
  -v pgdata:/var/lib/postgresql/data \
  -d postgres:17

# الخطوة 3: التحقق من أن الحاوية قيد التشغيل
docker ps

# الخطوة 4: الاتصال عبر psql داخل الحاوية
docker exec -it pg-dev psql -U devuser -d shopdb

Output:

TEXT 📖 للعرض فقط
psql (17.0)
Type "help" for help.

shopdb=>

(2) أوامر إدارة Docker الشائعة

الإجراء الأمر
بدء الحاوية docker start pg-dev
إيقاف الحاوية docker stop pg-dev
إعادة تشغيل الحاوية docker restart pg-dev
إزالة الحاوية docker rm -f pg-dev
عرض السجلات docker logs pg-dev
الدخول إلى psql docker exec -it pg-dev psql -U devuser -d shopdb
💡 نصيحة: -v pgdata:/var/lib/postgresql/data يحفظ البيانات في مجلد Docker، لذا تبقى البيانات حتى بعد إزالة الحاوية.


5. التثبيت المحلي

(1) تثبيت Windows

(2) ▶ مثال

TEXT 📖 للعرض فقط
1. نزّل المثبت من https://www.enterprisedb.com/downloads/postgres
2. شغّل postgresql-17-windows-x64.exe
3. اختر دليل التثبيت (الافتراضي: C:\Program Files\PostgreSQL\17)
4. عيّن كلمة مرور المستخدم المميز (postgres)
5. عيّن المنفذ (الافتراضي: 5432)
6. اختر اللغة المحلية (الافتراضي: [Default locale])
7. حدد "Launch Stack Builder at exit" (اختياري، لأدوات إضافية)
8. انقر Finish

بعد التثبيت، يسجل PostgreSQL ويبدأ تلقائيًا كخدمة Windows.

(2) تثبيت macOS Homebrew

(3) ▶ مثال

BASH
# تثبيت PostgreSQL 17 عبر Homebrew
brew install postgresql@17

# بدء خدمة PostgreSQL
brew services start postgresql@17

# الاتصال بقاعدة البيانات الافتراضية
psql postgres

# التحقق من الإصدار
SELECT version();

Output:

TEXT 📖 للعرض فقط
# psql command executed successfully

(3) تثبيت Linux

(4) ▶ مثال

BASH
# إضافة مستودع APT الرسمي لـ PostgreSQL
sudo apt update
sudo apt install -y curl ca-certificates
sudo install -d /usr/share/postgresql-common/pgdg
sudo curl -o /usr/share/postgresql-common/pgdg/apt.postgresql.org.asc \
  --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc

sudo sh -c 'echo "deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] \
  https://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" \
  > /etc/apt/sources.list.d/pgdg.list'

# تثبيت PostgreSQL 17
sudo apt update
sudo apt install -y postgresql-17

# التبديل إلى مستخدم postgres والاتصال
sudo -u postgres psql

# التحقق من التثبيت
SELECT version();

Output:

TEXT 📖 للعرض فقط
# psql command executed successfully
التوزيعة أمر التثبيت إدارة الخدم��
Ubuntu/Debian sudo apt install postgresql-17 sudo systemctl start/stop/restart postgresql
RHEL/CentOS sudo dnf install postgresql-server sudo systemctl start/stop/restart postgresql
Arch Linux sudo pacman -S postgresql sudo systemctl start/stop/restart postgresql

6. أدوات الإدارة الرسومية

(1) pgAdmin 4 مقابل DBeaver

البعد pgAdmin 4 DBeaver
الموقع أداة إدارة PostgreSQL الرسمية أداة إدارة قواعد بيانات شاملة
قواعد البيانات المدعومة PostgreSQL فقط PostgreSQL + MySQL + SQLite + Oracle، 20+ إجمالاً
التكلفة مجاني مجتمع مجاني / مؤسسات مدفوع
المنصة متصفح ويب + سطح مكتب Windows / macOS / Linux سطح مكتب
دعم ميزات PG الأفضل (دعم محلي لجميع ميزات PG) جيد (الميزات الشائعة مدعومة)
موصى به لـ مشاريع PG الخاصة، ميزات PG الفريدة بيئات متعددة قواعد البيانات، تطوير/تصحيح يومي
💡 نصيحة: ثبت كليهما — اس��خدم pgAdmin لعمليات PG الخاصة (مثل عرض خطط التنفيذ، إدارة الامتدادات) و DBeaver لتطوير SQL اليومي وتصفح البيانات.

(2) تثبيت pgAdmin 4

(5) ▶ مثال

TEXT 📖 للعرض فقط
1. نزّل من https://www.pgadmin.org/download/
2. ثبت وشغّل pgAdmin 4
3. انقر "Add New Server"
4. علامة التبويب General: Name = "Local Dev"
5. علامة التبويب Connection:
   - Host: localhost (أو 127.0.0.1)
   - Port: 5432
   - Maintenance database: shopdb
   - Username: devuser
   - Password: devpass123
6. انقر Save

(3) تثبيت DBeaver

(6) ▶ مثال

TEXT 📖 للعرض فقط
1. نزّل من https://dbeaver.io/download/ (إصدار المجتمع)
2. ثبت وشغّل DBeaver
3. انقر "New Database Connection" (أيقونة القابس)
4. اختر PostgreSQL
5. املأ إعدادات الاتصال:
   - Host: localhost
   - Port: 5432
   - Database: shopdb
   - Username: devuser
   - Password: devpass123
6. انقر "Test Connection" (يطالب بتنزيل مشغل PG JDBC)
7. انقر Finish

7. اتصال سطر أوامر psql

psql هو عميل سطر الأوامر المدمج في PostgreSQL والأداة التفاعلية الأكثر شيوعًا.

(1) معلمات الاتصال

المعامل الاختصار الافتراضي الوصف
--host -h localhost عنوان خادم قاعدة البيانات
--port -p 5432 رقم المنفذ
--username -U مستخدم نظام التشغيل الحالي اسم مستخدم الاتصال
--dbname -d نفس اسم المستخدم اسم قاعدة البيانات المراد الاتصال بها
--password -W لا شيء فرض مطالبة كلمة المرور

(7) ▶ مثال

BASH
# الاتصال بـ PostgreSQL المحلي
psql -h localhost -p 5432 -U devuser -d shopdb

# أو استخدام URI اتصال
psql "postgresql://devuser:devpass123@localhost:5432/shopdb"

# أو عبر Docker
docker exec -it pg-dev psql -U devuser -d shopdb

Output:

TEXT 📖 للعرض فقط
CONTAINER ID   IMAGE     STATUS    
abc123         latest    Up 2 hours

(2) أوامر psql الوصفية الشائعة

أوامر psql الوصفية تبدأ بـ \ ولا تحتاج فاصلة منقوطة:

الأمر الوظيفة مثال
\l سرد جميع قواعد البيانات \l
\c dbname تبديل قاعدة البيانات \c shopdb
\dt سرد الجداول في قاعدة البيانات الحالية \dt
\d tablename عرض هيكل الجدول \d users
\du سرد جميع المستخدمين/الأدوار \du
\df سرد جميع الدوال \df
\dx سرد الامتدادات المثبتة \dx
\conninfo عرض معلومات الاتصال الحالية \conninfo
\q الخروج من psql \q
\? مساعدة (جميع الأوامر الوصفية) \?

(8) ▶ مثال

SQL
-- التحقق من معلومات الاتصال
\conninfo

-- سرد قواعد البيانات
\l

-- إنشاء جدول اختبار
CREATE TABLE test_greeting (
    id SERIAL PRIMARY KEY,
    message TEXT NOT NULL,
    created_at TIMESTAMP DEFAULT NOW()
);

-- إدراج بيانات
INSERT INTO test_greeting (message) VALUES ('Hello, PostgreSQL!');

-- استعلام بيانات
SELECT * FROM test_greeting;

-- إسقاط جدول الاختبار
DROP TABLE test_greeting;

Output:

TEXT 📖 للعرض فقط
-- \conninfo output:
You are connected to database "shopdb" as user "devuser" on host "localhost" at port "5432".

-- SELECT output:
 id |      message       |         created_at
----+--------------------+----------------------------
  1 | Hello, PostgreSQL! | 2026-07-13 10:30:00.123456

8. بدء وإيقاف الخدمة

البيئة بدء إيقاف إعادة تشغيل الحالة
Docker docker start pg-dev docker stop pg-dev docker restart pg-dev docker ps
Linux (systemd) sudo systemctl start postgresql sudo systemctl stop postgresql sudo systemctl restart postgresql sudo systemctl status postgresql
macOS (Homebrew) brew services start postgresql@17 brew services stop postgresql@17 brew services restart postgresql@17 brew services list
Windows تبدأ الخدمة تلقائيًا net stop postgresql-x64-17 net stop ثم net start تحقق من مدير الخدمات

9. مثال كامل: من التثبيت إلى التحقق

BASH
# ============================================
# سير عمل كامل: تثبيت، اتصال، تحقق
# من الصفر إلى التشغيل في 5 أوامر
# ============================================

# 1. بدء PostgreSQL عبر Docker
docker run --name pg-dev \
  -e POSTGRES_USER=devuser \
  -e POSTGRES_PASSWORD=devpass123 \
  -e POSTGRES_DB=shopdb \
  -p 5432:5432 \
  -d postgres:17

# 2. انتظار جاهزية الحاوية (حوالي 5 ثوانٍ)
sleep 5

# 3. الاتصال عبر psql
docker exec -it pg-dev psql -U devuser -d shopdb

# 4. داخل psql: تشغيل استعلامات التحقق
# (اكتب هذه الأوامر في موجه psql)

-- عرض إصدار PostgreSQL
SELECT version();

-- عرض الاتصال الحالي
\conninfo

-- سرد الامتدادات المتاحة
SELECT name, default_version FROM pg_available_extensions LIMIT 5;

-- إنشاء جدول اختبار وإدراج بيانات
CREATE TABLE hello_pg (
    id SERIAL PRIMARY KEY,
    greeting TEXT,
    created_at TIMESTAMPTZ DEFAULT NOW()
);

INSERT INTO hello_pg (greeting) VALUES
    ('Hello from PostgreSQL!'),
    ('Docker install works!'),
    ('Ready to learn!');

-- تحقق
SELECT * FROM hello_pg;

-- تنظيف
DROP TABLE hello_pg;

-- خروج من psql
\q

# 5. إيقاف الحاوية عند الانتهاء
docker stop pg-dev

Output (مقتطف):

TEXT 📖 للعرض فقط
                                                     version
-----------------------------------------------------------------------------------------------------------------
 PostgreSQL 17.0 on x86_64-pc-linux-gnu, compiled by gcc (Debian 12.2.0-14) 12.2.0, 64-bit

     name      | default_version
---------------+-----------------
 plpgsql       | 1.0
 uuid-ossp     | 1.1
 pg_trgm       | 1.6

 id |       greeting        |          created_at
----+-----------------------+-------------------------------
  1 | Hello from PostgreSQL! | 2026-07-13 10:30:00+00
  2 | Docker install works!  | 2026-07-13 10:30:00+00
  3 | Ready to learn!        | 2026-07-13 10:30:00+00

❓ أسئلة شائعة

س ما الفرق بين PostgreSQL المثبت بـ Docker والمثبت محليًا؟
ج متطابقان وظيفيًا. الفرق الوحيد هو كيفية التشغيل: Docker معزول في حاوية، المحلي يعمل مباشرة على نظام التشغيل. للتطوير، Docker موصى به (نظيف، قابل للتكرار)؛ للإنتاج، المحلي موصى به (أفضل أداء، بدون عبء Docker).
س كيف أؤكد أن PostgreSQL يعمل بعد التثبيت؟
ج أبسط طريقة هي psql -U postgres -c "SELECT 1". إذا أعاد 1، فإن PG يعمل ويمكن الوصول إليه. في Docker، تحقق من حالة الحاوية بـ docker ps | grep postgres.
س نسيت كلمة مرور مستخدم postgres — ماذا الآن؟
ج غيّر طريقة المصادقة مؤقتًا في pg_hba.conf إلى trust (بدون كلمة مرور)، أعد تشغيل PG، ثم أعد التعيين بـ ALTER USER postgres PASSWORD 'new_password'، وأعد المصادقة إلى md5 أو scram-sha-256.
س المنفذ 5432 مشغول — ماذا أفعل؟
ج استخدم lsof -i :5432 (macOS/Linux) أو netstat -ano | findstr 5432 (Windows) للعثور على العملية التي تستخدمه. يمكنك إما إيقاف تلك العملية أو تغيير منفذ PG (عيّن port = 5433 في postgresql.conf).
س pgAdmin يفتح ببطء شديد — ماذا أفعل؟
ج pgAdmin 4 هو تطبيق ويب؛ الإطلاق الأول يحمل محرك متصفح وقد يستغرق 10–30 ثانية. إذا بقي بطيئًا، جرب وضع سطح المكتب أو انتقل إلى DBeaver (بدء أسرع).
س لماذا توصي بـ DBeaver بدلاً من pgAdmin فقط؟
ج DBeaver يبدأ أسرع، يدعم قواعد بيانات متعددة، ولديه محرر SQL أذكى (إكمال تلقائي / تنسيق). قوة pgAdmin هي دعم أكثر اكتمالاً لميزات PG (مثل وظائف pgAgent المجدولة، أداة مخطط ER). استخدام كليهما هو الأفضل.

📖 ملخص


📝 تمارين

  1. أساسي (★): ثبت PostgreSQL 17 بـ Docker، اتصل عبر psql، شغّل SELECT version();، وسجل المخرجات.

  2. متوسط (★★): ثبت DBeaver وأنشئ اتصالاً بـ PostgreSQL المحلي. في DBeaver، أنشئ جدول todo_items (أعمدة: id, title, completed, created_at)، أدرج 3 صفوف اختبار، واستعلم عنها.

  3. تحدي (★★★): ثبت كلاً من pgAdmin 4 و DBeaver واتصل بنفس نسخة PostgreSQL. في كل أداة، اعرض كتالوج النظام pg_available_extensions وقارن كيفية عرض كل منهما له. اكتب أي أداة تفضلها لهذا النوع من بيانات النظام ولماذا.

Web-Tutorial.com

فريق Web-Tutorial التقني

منصة دروس برمجية يديرها عدة مطورين. كل درس يتم كتابته ومراجعته بواسطة مطورين متخصصين في المجال. نعمل على ضمان دقة وموثوقية المحتوى — إذا لاحظت أي مشكلة، فيرجى إخبارنا.

100%