كيفية تثبيت PostgreSQL على Ubuntu و CentOS و Windows؟

نشرت: 2021-06-08

PostgreSQL هي واحدة من أنظمة قواعد البيانات العلائقية للكائنات ذات الأنظمة الأساسية والمفتوحة المصدر والتي تتميز بالقوة والأداء العالي والموثوقية مع وجود مجتمع قوي.

يعود تاريخه إلى عام 1986 كجزء من مشروع POSTGRES في جامعة كاليفورنيا ، بيركلي ، ويحمل 30 عامًا من التطوير النشط على منصته الأساسية. أثبت أدائها المتسق على مر السنين نزاهتها وبنيتها وقابليتها للتوسع لاستخدام المؤسسات. إنه متوافق مع ACID ويقدم دعمًا للوظائف الإضافية القوية مثل موسع قاعدة البيانات الجغرافية المكانية PostGIS الشهير.

سنغطي تثبيت PostgreSQL على الأنظمة الأساسية الشائعة في هذه المقالة.

اذا هيا بنا نبدأ.

أوبونتو

PostgreSQL متاح لجميع نكهات وإصدارات Ubuntu. لديك خيار تثبيت واستخدام الإصدار المتاح افتراضيًا مع إصدار Ubuntu الخاص بك ودعمه طوال عمره أو استخدام إصدار معين عن طريق إضافة مستودع PostgreSQL وتثبيته. سنغطي كلا الخيارين هنا.

لاستخدام الإصدار المدعوم الافتراضي الذي يوفره مستودع Ubuntu ، قم بتشغيل:

 $ sudo apt-get update $ sudo apt-get -y install postgresql

يدعم PostgreSQL Apt Repository إصدارات LTS الحالية من Ubuntu ، أي 20.04 و 18.04 و 16.04 . على الرغم من أنه قد لا يكون مدعومًا بالكامل ، إلا أن نفس الحزم تعمل على إصدارات بخلاف LTS أيضًا باستخدام أقرب إصدار LTS.

لاستخدام مستودع PostgreSQL apt ، اتبع الخطوات التالية:

 $ sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list' $ wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - $ sudo apt-get update $ sudo apt-get -y install postgresql

لتثبيت إصدار معين من مستودع PostgreSQL ، بدلاً من مجرد postgresql الذي يشير إلى أحدث إصدار ، postgresql-12 مثل postgresql-12 :

 $ sudo apt-get -y install postgresql-12

يحتوي المستودع أيضًا على حزم مختلفة ، بما في ذلك ملحقات الطرف الثالث. على سبيل المثال ، تتضمن الحزم المتاحة بشكل شائع للإصدار 12 من PostgreSQL ما يلي:

postgresql-العميل -12 مكتبات العميل وثنائيات العميل
بوستجرسكل 12 خادم قاعدة البيانات الأساسية
postgresql-Contrib-9.x الوحدات الإضافية الموردة (جزء من حزمة postgresql-xx في الإصدار 10 والإصدارات الأحدث)
libpq- ديف المكتبات والعناوين لتطوير الواجهة الأمامية للغة سي
postgresql- خادم- dev-12 مكتبات ورؤوس لتطوير الواجهة الخلفية للغة سي
pgadmin4 pgAdmin 4 أداة الإدارة الرسومية

بمجرد اكتمال التثبيت ، يمكنك التحقق من حالة خدمة قاعدة البيانات باستخدام الأمر التالي:

 $ sudo systemctl status postgresql.service

بالنسبة إلى Ubuntu ، بعد التثبيت ، يجب تمكين الخدمة وتشغيلها مثل:

 $ sudo systemctl status postgresql.service ● postgresql.service - PostgreSQL RDBMS Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled) Active: active (exited) since Sun 2021-06-06 16:06:45 UTC; 46s ago Main PID: 3364 (code=exited, status=0/SUCCESS) Tasks: 0 (limit: 1113) Memory: 0B CGroup: /system.slice/postgresql.service Jun 06 16:06:45 ubuntu20cloud systemd[1]: Starting PostgreSQL RDBMS... Jun 06 16:06:45 ubuntu20cloud systemd[1]: Finished PostgreSQL RDBMS. $

CentOS

مثل Ubuntu ، تحتوي مستودعات RHEL / CentOS أيضًا على إصدار معين من PostgreSQL ، والذي يتم دعمه طوال عمر نظام التشغيل. يمكنك تثبيت نفس باستخدام:

 $ sudo yum install -y postgresql-server

أو يمكنك استخدام DNF إذا كنت تستخدم CentOS 8.

 $ sudo dnf install -y postgresql-server

قم بتشغيل الأوامر التالية بعد التثبيت لتهيئة قاعدة البيانات ، وتمكين خدمة PostgreSQL ، وبدء تشغيلها:

 $ sudo postgresql-setup initdb $ sudo systemctl enable postgresql.service $ sudo systemctl start postgresql.service

أو لاستخدام الحزم مباشرةً من مستودعات PostgreSQL yum ، علينا إضافة المستودع على النحو التالي:

 $ sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

ثم لتثبيت إصدار معين من PostgreSQL مثل الإصدار 13 ، وهو أحدث إصدار ثابت وقت كتابة هذا المقال ، استخدم:

 $ sudo yum install -y postgresql13-server

يحتوي مستودع yum أيضًا على حزم إضافية لـ PostgreSQL ، ومن بينها بعض الحزم المهمة مذكورة أدناه:

postgresql- العميل المكتبات والثنائيات العميل
خادم postgresql خادم قاعدة البيانات الأساسية
postgresql- مساهمات الوحدات الإضافية الموردة
postgresql-devel مكتبات ورؤوس لتطوير لغة سي

نفِّذ الخطوات التالية بعد التثبيت لتهيئة قاعدة البيانات ، وتمكين خدمة PostgreSQL ، وبدء تشغيلها:

 $ sudo /usr/pgsql-13/bin/postgresql-13-setup initdb $ sudo systemctl enable postgresql-13 $ sudo systemctl start postgresql-13

يمكنك التحقق من حالة خدمة قاعدة البيانات باستخدام الأمر أدناه:

 $ sudo systemctl status postgresql.service ● postgresql.service - PostgreSQL database server Loaded: loaded (/usr/lib/systemd/system/postgresql.service; enabled; vendor preset: disabled) Active: active (running) since Sun 2021-06-06 16:39:35 GMT; 1min 12s ago Process: 7011 ExecStart=/usr/bin/pg_ctl start -D ${PGDATA} -s -o -p ${PGPORT} -w -t 300 (code=exited, status=0/SUCCESS) Process: 7005 ExecStartPre=/usr/bin/postgresql-check-db-dir ${PGDATA} (code=exited, status=0/SUCCESS) CGroup: /system.slice/postgresql.service ├─7014 /usr/bin/postgres -D /var/lib/pgsql/data -p 5432 ├─7015 postgres: logger process ├─7017 postgres: checkpointer process ├─7018 postgres: writer process ├─7019 postgres: wal writer process ├─7020 postgres: autovacuum launcher process └─7021 postgres: stats collector process Jun 06 16:39:34 centos7cloud systemd[1]: Starting PostgreSQL database server... Jun 06 16:39:35 centos7cloud systemd[1]: Started PostgreSQL database server. $

شبابيك

تتوفر مثبتات Windows 32 بت و 64 بت من موقع PostgreSQL الرسمي هنا.

  • يمكنك تنزيل البرنامج الثنائي القابل للتطبيق بناءً على الإصدار والبنية المطلوبين.

postgresql- تنزيل

  • سنقوم بتنزيل أحدث إصدار متاح ، وهو v13.3 لمنصة Windows 64 بت. بمجرد اكتمال التنزيل ، قم بتشغيل المثبت بالنقر المزدوج عليه.

postgresql-install-launch

  • انقر فوق "التالي" للمتابعة.

postgresql- تثبيت الموقع

  • انقر فوق "التالي" لمتابعة المسار الافتراضي أو تحديد مسار التثبيت المخصص الخاص بك.

  • يمكنك الاحتفاظ بالمكونات الافتراضية محددة والنقر فوق التالي للمتابعة.

postgresql- تثبيت- datadir

  • بعد ذلك ، يسأل عن موقع دليل البيانات ؛ يمكن الاحتفاظ به كإعداد افتراضي ما لم يكن لديك قرص مخصص منفصل أو دليل مخصص له. انقر فوق "التالي" للمتابعة.

postgresql- تثبيت- كلمة المرور

  • حدد كلمة مرور قوية سيتم تخصيصها لمستخدم postgres . انقر فوق التالي عند الانتهاء.

postgresql-install-port

  • يجب أن يكون المنفذ الافتراضي 5432 جيدًا لمعظم الحالات. انقر فوق "التالي" للانتقال إلى الصفحة التالية.

postgresql-install-locale

  • حدد الإعدادات المحلية لقاعدة البيانات وانقر فوق "التالي" للمتابعة.

postgresql-install-تأكيد

  • سيتم سرد كافة الإعدادات المحددة لمعالج التثبيت لمراجعتها والتأكيد عليها. إذا احتاج أي شيء للتغيير ، فارجع وقم بتغييره أو انقر فوق "التالي" للمتابعة إلى الصفحة التالية.

postgresql- تثبيت-تأكيد -1

  • سيُظهر الإعداد أنه جاهز لمتابعة التثبيت. عندما تصبح جاهزًا ، انقر فوق "التالي" لبدء التثبيت.

postgresql- تثبيت التقدم

  • انتظر التثبيت لإكمال. سيظهر تأكيد لنفسه.

postgresql-install-complete

  • بمجرد الانتهاء ، يمكنك إلغاء تحديد Stack Builder والنقر فوق إنهاء للخروج من معالج التثبيت. انقر فوق قائمة ابدأ وابحث عن SQL Shell (psql) وانقر على psql لفتح psql shell.

psql- قائمة البداية

  • يفتح SQL Shell (psql) حيث يمكنك التفاعل مع مثيل PostgreSQL بعد تحديد تفاصيل الاتصال. يمكن تحديد جميع العناصر كعناصر افتراضية عن طريق الضغط ببساطة على Enter باستثناء كلمة المرور ، حيث تحتاج إلى إدخال كلمة المرور المحددة لمستخدم postgres أثناء معالج التثبيت. سيؤدي هذا إلى وصولك إلى postgres=# موجه.

psql-sql-shell windows

اتصل بـ PostgreSQL

يتم إنشاء مستخدم postgres تلقائيًا بعد التثبيت ، والذي يتمتع superadmin وصول superadmin إلى مثيل قاعدة البيانات. على نظام Linux ، بصفتك مستخدمًا ذا امتياز ، يمكنك التبديل إلى هذا الحساب على النحو التالي:

 $ sudo su - postgres

بمجرد الدخول ، يمكننا إعادة تعيين كلمة مرور مستخدم postgres النحو التالي:

 $ psql -c "alter user postgres with password '[email protected]'"

ثم قم بتشغيل موجه PostgreSQL مع psql النحو التالي:

 $ psql

سينقلك هذا إلى داخل موجه PostgreSQL:

 $ psql psql (12.7 (Ubuntu 12.7-0ubuntu0.20.04.1)) Type "help" for help. postgres=#

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

 postgres=# CREATE DATABASE geekflaredb; CREATE DATABASE postgres=# CREATE USER geekuser WITH ENCRYPTED PASSWORD '[email protected]'; CREATE ROLE postgres=# GRANT ALL PRIVILEGES ON DATABASE geekflaredb to geekuser; GRANT postgres=#

يمكننا بعد ذلك سرد قواعد البيانات باستخدام الأمر \l :

 postgres=# \l List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -------------+----------+----------+---------+---------+----------------------- geekflaredb | postgres | UTF8 | C.UTF-8 | C.UTF-8 | =Tc/postgres + | | | | | postgres=CTc/postgres+ | | | | | geekuser=CTc/postgres postgres | postgres | UTF8 | C.UTF-8 | C.UTF-8 | template0 | postgres | UTF8 | C.UTF-8 | C.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres template1 | postgres | UTF8 | C.UTF-8 | C.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres (4 rows) postgres=#

الآن يمكنك ببساطة الاتصال بقاعدة بيانات باستخدام:

 postgres=# \c geekflaredb You are now connected to database "geekflaredb" as user "postgres". geekflaredb=#

ملخص

تعد PostgreSQL إحدى قواعد البيانات المعتمدة على نطاق واسع في عالم المؤسسات نظرًا لقوتها ومجموعة ميزاتها وقابليتها للتوسع. من السهل التعلم ومحاولة التوافق مع معايير SQL.

يوجد برنامج تعليمي متاح لـ PostgreSQL على موقعها الرسمي.