سنتعرف في هذا الفصل على طريقة تثبيت Postgres على مختلف أنظمة التشغيل، كما سنهيئ قاعدة البيانات للعمل، ونتعلم كيفية إعطاء الصلاحيات للمستخدمين، ثم نبدأ باستخدام قاعدة البيانات الخاصة بنا.
تثبيت Postgres
سنذكر في هذه الفقرة الخطوات الأساسية لتثبيت Postgres على أنظمة التشغيل المختلفة.
التثبيت على لينكس
تختلف طريقة التثبيت حسب نوع التوزيعة، ولذلك سنذكر طريق التثبيت في التوزيعات الرئيسية.
التثبيت باستخدام أداة yum (فيدورا، ريد هات، سنتوس، لينكس العلمي …)
يشرح المثال التالي كيفية تثبيت PostgreSQL 12 على نظام CentOS 7.6 x64:
- توجه إلى PostgresSQL Yum Repository واختر إصدار PostgreSQL الذي تريد تثبيته ومن ثم حدد نظام التشغيل الخاص بك وإصداره والمعمارية، في هذا الدليل قمنا باستخدام نظام centos/redhat الإصدار 7، والمعمارية x86_64.
- نزّل حزمة RPM للمنصة الخاصة بك من الموقع أو نفّذ الأمر التالي من الطرفية Terminal:
curl -O https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
- ثبّت الحزمة كما يلي:
rpm -ivh pgdg-redhat-repo-latest.noarch.rpm
ملاحظة: قد تحتاج إلى استخدام sudo
لتنفيذ الأمر السابق.
- ابحث سريعًا لعرض الحزم المتاحة لـ postgres باستخدام الأمر التالي:
yum list postgres*
ملاحظة: من الممكن أن يُظهر لك الأمر السابق إصدارات قديمة، لذا تأكد من اختيار النسخة المناسبة التي تريد تثبيتها ومن توافق جميع الحزم في رقم الإصدار للخادوم والعميل وأداة contrib (قد لا يكون ذلك ضروريًّا دومًا ولكن لأخذ الاحتياط من المشاكل التي قد تظهر).
- ثبّت الحزمة التي تختارها بشكل مشابه للأمر التالي:
sudo yum install postgresql12 postgresql12-devel postgresql12-libs postgresql12-server postgresql12-contrib
ثبَّتنا في الأمر السابق عدة حزم مرتبطة بالإصدار 12، ففيها كلا برنامجي الخادم والعميل، وكذلك المكاتب والملفات الرأسية headers، وكذلك المكاتب والإضافات للمساهمين في هذا المشروع مفتوح المصدر، إذ فضّلنا تثبيتها جميعًا كي تتمكن لاحقًا من استخدام أي منها.
نصيحة: في حال ظهور خطأ ما أثناء التثبيت فلا تيأس، ابحث عن الخطأ الذي قد يظهر لك ولا شك أنك ستجد إجابة لسؤالك.
الأنظمة التي تستخدم apt (أوبنتو، ديبيان، مينت…)
يمكنك تطبيق الأمر التالي باستخدام apt-get
:
sudo apt-get install postgresql
في نظام Arch Linux
نستخدم الأمر pacman
كما يلي:
sudo pacman -S postgresql
يمكنك أيضًا الرجوع إلى هذا الفيديو، تثبيت وإعداد قاعدة بيانات PostgreSQL لمزيد من التفاصيل حول عملية التثبيت على أنظمة لينكس.
التثبيت على نظام ويندوز
يمكنك استخدام أداة التثبيت لنظام ويندوز (ستحتاج إلى VPN إذا كنت في سوريا أو السودان، كالعادة)، وبعد أن تحمّل أداة التثبيت اتبع خطوات التثبيت المعروفة.
التثبيت على نظام ماك
يمكنك تحميل أداة التثبيت لنظام ماك من هذا الرابط. واتباع خطوات التثبيت المعروفة كذلك.
أساسيات إدارة قواعد بيانات Postgres
بعد تثبيت Postgres، سنبدأ العمل عليها مباشرةً وإنشاء أول قاعدة بيانات لنا بوساطتها، فهل أنت مستعد؟ لننطلق!
إنشاء عنقود جديد لقواعد بيانات Postgres
بعد أن ثبَّت خادم قواعد بيانات Postgres على جهازك، يمكننا الآن البدء باستخدامه، ولكن يجب إنشاء ما يُسمّى بعنقود قواعد البيانات (Database Cluster) أولًا.
عنقود قواعد البيانات هو مجموعة من قواعد البيانات المُدارة عبر خادوم واحد، ولإنشائه علينا إنشاء المسارات التي ستُخزّن فيها بيانات قاعدة البيانات، كما علينا توليد جداول الإعدادات المشتركة وإنشاء قاعدتي البيانات template1
و postgres
، يتم ذلك بشكل تلقائي كما سنرى بعد قليل، فلا تقلق.
قاعدة البيانات template1
تُمثّل قالبًا يتم استخدامه عند إنشاء أي قاعدة بيانات جديدة، أما قاعدة البيانات postgres` فهي قاعدة بيانات افتراضية مصممة ليتم استخدامها من المستخدمين والأدوات والتطبيقات الأخرى.
أولًا نقوم بإنشاء عنقود قاعدة بيانات باستخدام التوجيه initdb
ضمن صدفة bash
كما يلي:
sudo /usr/pgsql-12/bin/postgresql-12-setup initdb
ملحوظة: قمنا بكتابة المسار الكامل لبرمجية الإعداد والتهيئة (postgres-setup ) الخاصة بقواعد بيانات Postgres، ففي حال لم يتم العثور عليها في جهازك، فتأكد من أنك قمت بتثبيتها بطريقة صحيحة، ثم تأكد من أن مسار التثبيت الخاص بها.
يُظهر تنفيذ الأمر السابق المخرجات التالية:
Initializing database ... OK
ثم يمكنك بدء وتفعيل PostgreSQL باستخدام الأمرين التاليين:
sudo systemctl start postgresql-12 sudo systemctl enable postgresql-12
سنحصل من الأمر السابق على المخرجات التالية:
Created symlink from /etc/systemd/system/multi-user.target.wants/postgresql-12.service to /usr/lib/systemd/system/postgresql-12.service.
والآن أصبح خادم قاعدة بيانات PostgreSQL مفعّلًا ويمكننا استخدامه.
إدارة المستخدمين وإنشاء قاعدة بيانات بدائية
بعد أن قُمنا بتثبيت قواعد بيانات Postgres وإنشاء عنقود قواعد البيانات، ستكون الخطوة القادمة هي إضافة وإدارة صلاحيات مستخدمي قواعد البيانات المخزنة، حيث يمكن إنشاء مستخدمين والسماح لهم باستخدام قاعدة بيانات محددة دون الأخرى، أو السماح لهم بتنفيذ أوامر معيّنة، ومنعهم من تنفيذ غيرها.
للدخول إلى الصَّدَفَة (shell) الرئيسية الخاصة بPostgres نشغّل برنامج الصدفة بالأمر psql
، ولكن علينا أولا الانتقال من حساب المستخدم العادي إلى الحساب postgres
وذلك عن طريق الأمر التالي:
sudo -i -u postgres
لتتأكد من المستخدم الذي تعمل عليه، استخدم الأمر whoami
وقد تظهر لك مخرجات مشابهة لما يلي:
[mostafa@hsoub ~]$ whoami mostafa
وعندما تُبدّل المستخدم نعود وننفّذ الأمر whoami
مرة أخرى كما يلي:
[mayesh@hsoub ~]$ sudo -i -u postgres [sudo] password for mostafa: -bash-4.2$ whoami postgres
يمكنك الآن الدخول إلى قاعدة البيانات بتنفيذ الأمر psql
للبدء بالعمل، ثم سنقوم بإنشاء حساب مستخدم لك، باستخدام الأمر التالي:
CREATE USER mostafa WITH PASSWORD 'password';
أُنشئ الآن حساب جديد باسم mostafa
وبكلمة مرور password
، والخطوة التالية هي إنشاء قاعدة بيانات ومنح المستخدم mostafa
صلاحية الوصول لها.
CREATE DATABASE hsoubguide;
أُنشئت الآن قاعدة بيانات اسمها hsoubguide
، وسنقوم الآن بمنح الوصول إليها للمستخدم mostafa
بالأمر التالي:
GRANT ALL PRIVILEGES ON DATABASE hsoubguide TO mostafa;
مُنح الآن المستخدم mostafa
كل الصلاحيات في قاعدة البيانات، حيث أن هنالك عدة أنواع مختلفة من الصلاحيات:
SELECT, INSERT, UPDATE, DELETE, RULE, REFERENCES, TRIGGER, CREATE, TEMPORARY, EXECUTE, USAGE.
أما إذا أردنا منح واحدة منها فقط، فيمكننا تنفيذ الأمر التالي:
GRANT SELECT ON DATABASE hsoubguide TO mostafa;
تسمح GRANT SELECT
في هذا الأمر للمستخدم mostafa
باستخدام استعلامات SELECT
فقط في قاعدة البيانات hsoubguide
.
مثال عن قاعدة بيانات
قد يكون اهتمام بعض قرّاء هذا الدليل في Postgres منصبًّا على الاستعلامات أكثر من اهتمامهم بتصميم الجداول الخاصة بهم، ولذلك فقد قدّمنا مثالًا عن قاعدة بيانات جاهزة يمكنك تحميلها، لتتمكن من المتابعة مع هذا الدليل دون الحاجة إلى إنشاء الجداول الخاصة بك وإدراج البيانات الواردة ضمنها.
التثبيت المحلي
سيتعيّن عليك أوّلًا تنزيل البيانات، ثم تحميلها في قاعدة البيانات.
ملاحظة: تُنفّذ التعليمات التالية في صَدَفة bash
المُعتادة، وليس ضمن psql
.
curl -L -O http://cl.ly/173L141n3402/download/example.dump createdb hsoubguide pg_restore --no-owner --dbname hsoubguide example.dump
سنتحدث عن الأمر pg_restore
في فقرة لاحقة، وهو مسؤول عن استرجاع قاعدة بيانات من ملف، أما الأمر createdb
فهو يُنشئ قاعدة بيانات في Postgres اسمها hsoubguide
.
الاتصال بقاعدة البيانات
بعد أن أنشأت قاعدة البيانات الخاصة بك hsoubguide
فعليك الآن الدخول إلى psql
والاتصال بقاعدة البيانات هذه، ويمكنك القيام بذلك بطريقتين:
-
تحديد قاعدة البيانات عن عن طريق التوجيه
dbname
كما يلي:
psql --dbname hsoubguide
-
تحديد قاعدة البيانات من داخل صَدفة
psql
باستخدام الأمر\c
كما يلي:
postgres=# \c hsoubguide You are now connected to database "hsoubguide" as user "postgres".
الخلاصة
ثبَّتنا في هذا الفصل Postgres، وتعرفنا على كيفية الدخول إلى صدفة psql
ثم أنشأنا قاعدة بيانات بدائية، وتعرفنا على كيفية تحديد صلاحية المستخدمين، وسنتعرف في الفصل التالي على بعض الأوامر التي يمكننا تنفيذها داخل صدفةpsql
.
اقرأ أيضًا
- المقال التالي: أساسيات استخدام صدفة psql
- المقال السابق: نظرة عامة على Postgres وتاريخها
- النسخة الكاملة لكتاب الدليل العملي إلى قواعد بيانات PostgreSQL
- فيديو - تثبيت وإعداد قاعدة بيانات PostgreSQL
- كيف تثبت PostgreSQL وتستخدمه على Ubuntu 14.04
أفضل التعليقات
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.