PostgreSQL: كيفية تثبيت PostgreSQL وإجراء أول اتصال
آخر تحديث: 2026-08-26
تثبيت PostgreSQL وإجراء أول اتصال هو الخطوة الأولى في تعلمه — هذه المقالة تشغل نسخة PG عاملة بأسرع طريقة ممكنة.
1. ما ستتعلمه
- تثبيت PostgreSQL محليًا على Windows / macOS / Linux
- التثبيت باستخدام Docker (موصى به لبيئات التطوير)
- تثبيت أدوات الإدارة الرسومية pgAdmin 4 و DBeaver
- الاتصال وإجراء العمليات الأساسية باستخدام سطر أوامر psql
- بدء/إيقاف الخدمة وتكوين معلمات الاتصال
2. قصة حقيقية لموظف جديد
(1) المشكلة: تشغيل قاعدة البيانات في 30 دقيقة
انضم Bob للتو إلى شركة تجارة إلكترونية. طلب منه مديره إعداد قاعدة بيانات تطوير PostgreSQL محلية في غضون 30 دقيقة. كان Bob قد استخدم MySQL فقط من قبل وكان جديدًا تمامًا على PG:
- غير متأكد من الإصدار الذي يجب تنزيله
- لم يعرف كيفية التحقق من نجاح التثبيت
- سمع أنه يحتاج أيضًا إلى أداة رسومية — pgAdmin أم DBeaver؟
(2) Docker + DBeaver للإنقاذ
تثبيت PostgreSQL باستخدام Docker هو أسرع طريقة — أمر واحد، بدون متاعب خاصة بالنظام:
# سحب وتشغيل 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) النتيجة
- تم في دقيقتين (مقابل 10–15 دقيقة للتثبيت المحلي)
- بيئات متسقة (تكوينات dev/test/prod قابلة لإعادة الاستخدام)
- هدم وإعادة بناء بأمر واحد — لا خوف من كسر الأشياء
3. مقارنة طرق التثبيت
| الطريقة | المزايا | العيوب | الأنسب لـ |
|---|---|---|---|
| Docker | سريع، نظيف، قابل للتكرار، هدم بأمر واحد | يتطلب Docker أولاً | بيئات التطوير (موصى به) |
| مثبت Windows | تثبيت رسومي، تسجيل تلقائي كخدمة نظام | إزالة غير نظيفة، إدارة إصدارات صعبة | مطوري Windows |
| macOS Homebrew | تثبيت CLI، تبديل إصدارات سهل | يتطلب إلمامًا بـ Homebrew | مطوري macOS |
| مدير حزم Linux | تكامل محلي، أفضل أداء | أوامر مختلفة لكل توزيعة | خوادم Linux / تطوير |
| خدمة سحابية | صفر عمليات، نسخ احتياطي تلقائي | يكلف مالاً، زمن انتقال الشبكة | الإنتاج |
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) ▶ مثال
# الخطوة 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:
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) ▶ مثال
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) ▶ مثال
# تثبيت PostgreSQL 17 عبر Homebrew
brew install postgresql@17
# بدء خدمة PostgreSQL
brew services start postgresql@17
# الاتصال بقاعدة البيانات الافتراضية
psql postgres
# التحقق من الإصدار
SELECT version();
Output:
# psql command executed successfully
(3) تثبيت Linux
(4) ▶ مثال
# إضافة مستودع 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:
# 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 الفريدة | بيئات متعددة قواعد البيانات، تطوير/تصحيح يومي |
(2) تثبيت pgAdmin 4
(5) ▶ مثال
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) ▶ مثال
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) ▶ مثال
# الاتصال بـ 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:
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) ▶ مثال
-- التحقق من معلومات الاتصال
\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:
-- \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. مثال كامل: من التثبيت إلى التحقق
# ============================================
# سير عمل كامل: تثبيت، اتصال، تحقق
# من الصفر إلى التشغيل في 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 (مقتطف):
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
❓ أسئلة شائعة
psql -U postgres -c "SELECT 1". إذا أعاد 1، فإن PG يعمل ويمكن الوصول إليه. في Docker، تحقق من حالة الحاوية بـ docker ps | grep postgres.pg_hba.conf إلى trust (بدون كلمة مرور)، أعد تشغيل PG، ثم أعد التعيين بـ ALTER USER postgres PASSWORD 'new_password'، وأعد المصادقة إلى md5 أو scram-sha-256.lsof -i :5432 (macOS/Linux) أو netstat -ano | findstr 5432 (Windows) للعثور على العملية التي تستخدمه. يمكنك إما إيقاف تلك العملية أو تغيير منفذ PG (عيّن port = 5433 في postgresql.conf).📖 ملخص
- تثبيت Docker هو أسرع طريقة لإعداد بيئة تطوير (أمر واحد في دقيقتين)
- Windows / macOS / Linux جميعها لديها خيارات تثبيت محلي؛ المحلي موصى به للإنتاج
- pgAdmin 4 هو أداة PG الرسمية، DBeaver شامل — ثبت كليهما للاستخدام التكميلي
- psql هو أداة CLI التفاعلية؛ تعلم
\l/\c/\dt/\d/\qكافٍ للبدء - معلمات الاتصال: المضيف / المنفذ / المستخدم / كلمة المرور / قاعدة البيانات، يدعم أيضًا اتصالات بتنسيق URI
- بدء/إيقاف الخدمة: Docker يستخدم
docker start/stop، Linux يستخدمsystemctl، macOS يستخدمbrew services
📝 تمارين
-
أساسي (★): ثبت PostgreSQL 17 بـ Docker، اتصل عبر psql، شغّل
SELECT version();، وسجل المخرجات. -
متوسط (★★): ثبت DBeaver وأنشئ اتصالاً بـ PostgreSQL المحلي. في DBeaver، أنشئ جدول
todo_items(أعمدة: id, title, completed, created_at)، أدرج 3 صفوف اختبار، واستعلم عنها. -
تحدي (★★★): ثبت كلاً من pgAdmin 4 و DBeaver واتصل بنفس نسخة PostgreSQL. في كل أداة، اعرض كتالوج النظام
pg_available_extensionsوقارن كيفية عرض كل منهما له. اكتب أي أداة تفضلها لهذا النوع من بيانات النظام ولماذا.