بدء العمل مع PostgreSQL


أكاديميّة حسوب

التثبيت

تحتاج إلى تثبيت PostgreSQL قبل البدء باستخدامه، ومن الممكن أن يكون مُثبّتًا بالفعل على موقعك، إما لأنه مُضمّن في نظام التشغيل أو لأن مدير النظام قد ثبته مسبقًا، وفي هذه الحالة عليك الحصول على معلومات حول كيفية الوصول إليه إما من توثيق نظام التشغيل أو من مدير النظام.

يمكنك تثبيت PostgreSQL بنفسك إذا لم تكن متأكد من أنه متاح فعلًا أو أنك تستطيع استخدامه في تجربتك، والقيام بذلك ليس صعبًا، ويستطيع أي شخص لا يتمتع بأية امتيازات تثبيته. وإذا قمت بتثبيته بنفسك، راجع مقال «تثبيت Postgres والتعرف على أساسيات إدارتها لقواعد البيانات» لمزيد من المعلومات حول كيفية التثبيت، ثم عُد إلى هذا الدليل بعد اكتمال التثبيت. تأكد تمامًا من متابعة جزء إعداد متغيرات البيئة المناسبة.

عليك القيام بأعمال إضافية إذا لم يقم مدير الموقع بإعداد بعض الأشياء بالطريقة الافتراضية، مثلًا، إذا كان خادم قاعدة البيانات آلةً بعيدةً متصلةً بشبكة أخرى، فيجب وضع اسم هذا الخادم كقيمة لمتغير البيئة PGHOST. وقد يحتاج متغير البيئة PGPORT إلى تهيئة أيضًا.

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

الأساسيات البنيوية

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

تستخدم PostgreSQL نموذج عميل/خادم. تتألف جلسة PostgreSQL من العمليات أو البرامج التالية:

  • عملية الخادم، وهي التي تدير ملفات قاعدة البيانات، وتقبل اتصال تطبيقات العميل بقاعدة البيانات، وتنفذ إجراءات قاعدة البيانات نيابةً عن العميل، ويدعى برنامج الخادم باسم postgres.
  • تطبيق العميل، وهو الواجهة الأمامية التي تَوَد تنفيذ عمليات قاعدة البيانات. تتنوع تطبيقات العميل في طبيعتها، يمكن أن تكون أداة موجهة للنصوص، أو تطبيقًا رسوميًا، أو خادم ويب يصل إلى قاعدة البيانات لعرض صفحات الويب، أو أداة مخصصة لصيانة قاعدة البيانات. بعض تطبيقات العميل توزع مع نظام PostgreSQL وأغلبها تُطوّر من قبل المستخدمين. من المعتاد أن تكون تطبيقات العميل/الخادم على مضيفين مختلفين، يتصلان عبر اتصال شبكة TCP/IP، يجب أن تضع هذا في الحسبان، لأن الملفات التي يمكن الوصول اليها على العميل يمكن ألا يتم الوصل إليها على خادم قاعدة البيانات، أو ربما يمكن الوصول إليها باستخدام اسم ملف مختلف.

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

إنشاء قاعدة البيانات

إن محاولة إنشاء قاعدة البيانات هو أول اختبار لمعرفة فيما إذا كنت تستطيع الوصول إلى خادم قواعد البيانات.

يستطيع خادم PostgreSQL إدارة العديد من قواعد البيانات، يوجد عادةً قاعدة بيانات منفصلة لكل مشروع أو لكل مستخدم. من المحتمل أن يُنشِئ مدير موقعك قاعدة بياناتك، وفي هذه الحالة تتجاوز هذه الخطوة إلى الخطوة التي تليها. لإنشاء قاعدة بيانات جديدة باسم mydb نستخدم الأمر التالي:

$ created mydb

تكون هذه الخطوة ناجحة إذا لم ينتج أي استجابة، وفي هذه الحالة تستطيع تجاوز بقية هذا القسم. أما إذا رأيت رسالة كالتالي:

Createdb: command not found

فهذا يعني أنه لم يتم تثبيت Postgres بدقة، فإما أنه لم يتم تثبيته على الإطلاق، أو أنه لم يتم إعداد مسار بحث الصدَفة (shell) بحيث يتضمنه، وفي هذه الحالة اكتب الأمر مع المسار الكامل كالتالي:

$ /usr/local/pgsql/bin/created mydb

ربما يكون مسار موقعك مختلفًا، لذلك اتصل بمدير الموقع أو تفحّص تعليمات التثبيت من أجل التصحيح. إذا كانت الاستجابة بالشكل التالي:

Created: could not connect to database postgres : could not connect to server : No such file or directory 
Is the server running locally and accepting connections on Unix domain socket "/tmp/ .s.PGSQL.5432"?

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

Created: could not connect to database postgres:  FATAL:   role "joe" does not exist

حيث يُذكر اسم المستخدم الخاص بك. يحدث هذا عندما لا يُنشِئ المدير حساب مستخدم خاص بك، حيث أن حسابات مستخدمي Postgres مختلفة عن حسابات مستخدمي نظام التشغيل.

فإذا كنت المدير، انظر إلى الفصل 21 للمساعدة في إنشاء حسابات المستخدمين، ولإنشاء أول حساب مستخدم يجب أن تكون مستخدم نظام التشغيل الذي نُصّب Postgres عليه.

وربما تكون المشكلة هي اختلاف اسم مستخدم Postgres الخاص بك عن اسم مستخدم نظام التشغيل الخاص بك أيضًا، وفي هذه الحالة تحتاج استخدام الراية ‎-U، أو تعيين اسم مستخدم Postgres الخاص بك كقيمة لمتغير البيئة PGUSER.

إذا كان لديك حساب مستخدم بدون صلاحية إنشاء قاعدة بيانات سترى الرسالة التالية:

Created: database creation failed:  ERROR:  permission denied to create database

إذا حدث هذا يجب عليك استشارة مدير الموقع، لأنه ليس جميع المستخدمين مصرّح لهم بإنشاء قواعد بيانات جديدة، وبالتالي يجب أن يمنحك مدير موقعك صلاحية إنشاء قواعد بيانات إذا لم تتمكن من ذلك.

يجب عليك تسجيل الدخول من حساب المستخدم الذي شغّل الخادم إذا قمت بتثبيت Postgres بنفسك.

يمكنك إنشاء قواعد بيانات بأسماء أخرى، حيث يسمح Postgres بأي عدد من قواعد البيانات للموقع المُعطى.

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

$ created

يمكنك حذف قاعدة البيانات إذا كنت لا تريد أن يستخدمها أحد، فإذا كنت مُنشئ قاعدة البيانات mydb يمكنك تدميرها باستخدام الأمر:

$ dropdb mydb

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

يمكنك الحصول على المزيد من المعلومات حول إنشاء وحذف قواعد البيانات بالرجوع إلى المقال «أساسيات استخدام صدفة psql» والمقال الذي يليه «استخدام أساسيات SQL في Postgres».

الوصول إلى قاعدة البيانات

تستطيع الوصل إلى قاعدة البيانات بمجرد إنشاءها، وذلك عن طريق:

  • تشغيل البرنامج الطرفي التفاعلي والذي يُدعى psql، والذي يسمح بإدخال وتعديل وتنفيذ أوامر SQL.
  • استخدام أداة الواجهة الأمامية الرسومية، مثل pgAdmin، أو تركيبة مكتبية تدعم اتصال قاعدة بيانات مفتوح(ODBC) أو اتصال قاعدة بيانات يستخدم لغة جافا (JDBC)، وذلك من أجل إنشاء قاعدة البيانات والتعامل معها. لن نتحدث في الفصل عن هذه الإمكانيات.
  • كتابة تطبيق مخصص يستخدم واحدة من روابط اللغة المتاحة.

يتم تشغيل واجهة psql من أجل قاعدة البيانات mydb باستخدام الأمر:

$ psql mydb

إذا لم تضع اسم قاعدة البيانات سيتم أخذ القيمة الافتراضية المساوية لاسم المستخدم الخاص بحسابك، وسيتم استقبالك في psql بالرسالة التالية:

Psql (13.1)
Type "help" for help
Mydb=>
ويمكن أن يكون السطر الأخير بالشكل التالي:
Mydb=#

يعني هذا أنك مدير قاعدة البيانات، وسيحدث هذا إذا قمت بتثبيت Postgres بنفسك، كونك مدير قاعدة البيانات يعني أنك لست خاضعًا للتحكم بالوصول. هذا ليس مهمًا هنا.

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

آخر سطر طُبِع باستخدام psql هو الموجّه، ويشير إلى أن psql يصغي لك وبإمكانك كتابة استعلامات SQL في مساحة عمل مُصانة من قبل psql، حاول كتابة هذه الأوامر:

Mydb=> SELECT version();

ناتج الأمر السابق:

|version|
***
|postgreSQL 13.1 on x86_64-pc-linux-gnu، compiled by GCC (Debian 4.9.2-10) 4.9.2، 64-bit|
 (1 row)
{>
Mydb=> SELECT current_date;

ناتج الأمر السابق:

|Date|
***
2016-01-07||

(1 row)
Mydb=> SELECT 2 + 2;

ناتج الأمر السابق:

|column|
***
|4|
(1 row)

يوجد في برنامج psql عدة أوامر غير موجودة في SQL، تبدأ بالرمز \، مثلًا الحصول على مساعدة يتم بالشكل:

Mydb=> \h

وللخروج من برنامج psql نكتب :

Mydb=> \q

حيث سيتم الخروج من psql والعودة إلى الصدفة command shell.

ننصحك بالرجوع إلى كتاب الدليل العملي إلى قواعد بيانات PostgreSQL لمزيد من التفاصيل حول قواعد بيانات PostgreSQL.

ترجمة وبتصرف لصفحات القسم Getting Started في موقع postgreSQL





تفاعل الأعضاء


لا توجد أيّة تعليقات بعد



يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن