وبلاگ رسانگار
با ما حرفه ای باشید

سرور مجازی NVMe

روش نصب PostgreSQL در CentOS 8

0 9
زمان لازم برای مطالعه: 4 دقیقه



PostgreSQL یا Postgres یک سیستم مدیریت پایگاه داده شی-رابطه ای همه منظوره منبع باز با بسیاری از ویژگی های پیشرفته است که به شما امکان می دهد محیط های مقاوم در برابر خطا یا برنامه های کاربردی پیچیده بسازید.

در این راهنما، روش نصب سرور پایگاه داده PostgreSQL در CentOS 8 را مورد بحث قرار خواهیم داد. قبل از انتخاب نسخه برای نصب، مطمئن شوید که برنامه های شما از آن پشتیبانی می کنند.

ما همچنین اصول مدیریت پایگاه داده PostgreSQL را بررسی خواهیم کرد.

پیش نیازها

برای اینکه بتوانید بسته ها را نصب کنید، باید به عنوان root یا کاربر با امتیازات sudo وارد شوید.

نصب PostgreSQL در CentOS 8

در زمان نگارش این مقاله، دو نسخه از سرور PostgreSQL برای نصب از مخازن استاندارد CentOS موجود است: نسخه 9.6 و 10.0.

برای فهرست کردن جریان های ماژول PostgreSQL موجود، تایپ کنید:

dnf module list postgresql

خروجی نشان می دهد که ماژول postgresql با دو جریان در دسترس است. هر جریان دارای دو پروفایل است: سرور و مشتری. جریان 10 با سرور نمایه پیش فرض است:

CentOS-8 - AppStream
Name          Stream    Profiles              Summary                                                 
postgresql    10 [d]    client, server [d]    PostgreSQL server and client module                     
postgresql    9.6       client, server [d]    PostgreSQL server and client module 
  1. برای نصب استریم پیش فرض، سرور PostgreSQL نسخه 10.0 را تایپ کنید:

    sudo dnf install @postgresql:10
  2. برای نصب سرور PostgreSQL نسخه 9.6 تایپ کنید:

    sudo dnf install @postgresql:9.6 

همچنین ممکن است بخواهید بسته contrib را نصب کنید که چندین ویژگی اضافی را برای سیستم پایگاه داده PostgreSQL فراهم می کند.

sudo dnf install postgresql-contrib

پس از اتمام نصب، پایگاه داده PostgreSQL را با دستور زیر مقداردهی اولیه کنید:

sudo postgresql-setup initdb
Initializing database ... OK

سرویس PostgreSQL را راه اندازی کنید و آن را فعال کنید تا در هنگام بوت شروع شود:

sudo systemctl enable --now postgresql

استفاده کنید psql ابزاری برای تأیید نصب با اتصال به سرور پایگاه داده PostgreSQL و چاپ نسخه آن:

sudo -u postgres psql -c "SELECT version();"
PostgreSQL 10.6 on x86_64-redhat-linux-gnu, compiled by gcc (GCC) 8.2.1 20180905 (Red Hat 8.2.1-3), 64-bit

نقش های PostgreSQL و روش های احراز هویت

PostgreSQL مجوزهای دسترسی به پایگاه داده را با استفاده از مفهوم نقش ها کنترل می کند. یک نقش می تواند نشان دهنده یک کاربر پایگاه داده یا گروهی از کاربران پایگاه داده باشد.

پیشنهاد می‌کنیم بخوانید:  روش تنظیم بلوک های سرور Nginx در CentOS 8

PostgreSQL از چندگانه پشتیبانی می کند روش های احراز هویت
. متداول ترین روش های مورد استفاده عبارتند از:

  • اعتماد – یک نقش می تواند بدون رمز عبور متصل شود، تا زمانی که شرایط تعریف شده در آن وجود داشته باشد pg_hba.conf برآورده شده اند.
  • رمز عبور – یک نقش می تواند با ارائه رمز عبور متصل شود. رمزهای عبور را می توان به عنوان ذخیره کرد scram-sha-256، md5، و password (متن واضح).
  • Ident – فقط در اتصالات TCP/IP پشتیبانی می شود. با به دست آوردن نام کاربری سیستم عامل مشتری، با نقشه برداری نام کاربری اختیاری کار می کند.
  • Peer – همانند Ident، اما فقط در اتصالات محلی پشتیبانی می شود.

احراز هویت مشتری PostgreSQL در فایل پیکربندی نامگذاری شده تعریف شده است pg_hba.conf. به طور پیش فرض، برای اتصالات محلی، PostgreSQL تنظیم شده است که از روش احراز هویت همتا استفاده کند.

این postgres وقتی سرور PostgreSQL را نصب می کنید، کاربر به طور خودکار ایجاد می شود. این کاربر ابرکاربر برای نمونه PostgreSQL است. معادل کاربر ریشه MySQL است.

برای ورود به سرور PostgreSQL به عنوان postgres کاربر، ابتدا به کاربر سوئیچ کنید و سپس به اعلان PostgreSQL با استفاده از psql سودمندی:

sudo su - postgrespsql

از اینجا می توانید با نمونه PostgreSQL تعامل داشته باشید. برای خروج از پوسته PostgreSQL، تایپ کنید:

\q

همچنین می‌توانید بدون تعویض کاربر با دستور PostgreSQL به اعلان PostgreSQL دسترسی پیدا کنید sudo
دستور:

sudo -u postgres psql

به طور معمول postgres کاربر فقط از localhost.

ایجاد نقش و پایگاه داده PostgreSQL

فقط ابرکاربران و نقش ها با CREATEROLE امتیاز می تواند نقش های جدیدی ایجاد کند.

در مثال زیر یک نقش جدید با نام ایجاد می کنیم john، پایگاه داده ای به نام johndb، و امتیازاتی را در پایگاه داده اعطا کنید.

  1. ابتدا به پوسته PostgreSQL متصل شوید:

    sudo -u postgres psql
  2. با استفاده از دستور زیر یک نقش PostgreSQL جدید ایجاد کنید:

    CREATE ROLE john;
  3. ایجاد یک پایگاه داده جدید:

    CREATE DATABASE johndb;
  4. با اجرای کوئری زیر به کاربر پایگاه داده امتیاز بدهید:

    GRANT ALL PRIVILEGES ON DATABASE johndb TO john;

دسترسی از راه دور به سرور PostgreSQL را فعال کنید

به طور پیش فرض، سرور PostgreSQL فقط در رابط محلی گوش می دهد 127.0.0.1.

برای فعال کردن دسترسی از راه دور به سرور PostgreSQL خود، فایل پیکربندی را باز کنید:

sudo nano /var/lib/pgsql/data/postgresql.conf

به پایین اسکرول کنید CONNECTIONS AND AUTHENTICATION بخش و خط زیر را اضافه/ویرایش کنید:

/var/lib/pgsql/data/postgresql.conf
#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------

# - Connection Settings -

listen_addresses = '*'     # what IP address(es) to listen on;

فایل را ذخیره کنید و سرویس PostgreSQL را مجدداً راه اندازی کنید:

sudo systemctl restart postgresql

تغییرات را با ss سودمندی:

ss -nlt | grep 5432
LISTEN   0    128    0.0.0.0:5432    0.0.0.0:*       
LISTEN   0    128    [::]:5432      [::]:*  

خروجی بالا نشان می دهد که سرور PostgreSQL در حال گوش دادن به پورت پیش فرض در همه اینترفیس ها (0.0.0.0) است.

پیشنهاد می‌کنیم بخوانید:  روش راه اندازی هاست مجازی آپاچی CentOS 8

آخرین مرحله پیکربندی سرور برای پذیرش اتصالات راه دور با ویرایش آن است pg_hba.conf فایل.

در زیر چند نمونه وجود دارد که موارد استفاده مختلف را نشان می دهد:

/var/lib/pgsql/data/pg_hba.conf
# TYPE  DATABASE        USER            ADDRESS                 METHOD

# The user jane can access all databases from all locations using an md5 password
host    all             jane            0.0.0.0/0                md5

# The user jane can access only the janedb database from all locations using an md5 password
host    janedb          jane            0.0.0.0/0                md5

# The user jane can access all databases from a trusted location (192.168.1.134) without a password
host    all             jane            192.168.1.134            trust

نتیجه

CentOS 8 دو نسخه PostgreSQL را ارائه می دهد: 9.6 و 10.0.

برای اطلاعات بیشتر در مورد این موضوع به سایت مراجعه کنید PostgreSQL Documentation

اگر مشکلی دارید یا بازخوردی دارید، در زیر نظر دهید.

پایگاه داده centos postgresql
برای نگارش بخشهایی از این متن ممکن است از ترجمه ماشینی یا هوش مصنوعی GPT استفاده شده باشد
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم

زمان انتشار: 1402-12-27 12:22:02

امتیاز شما به این مطلب
دیدگاه شما در خصوص مطلب چیست ؟

آدرس ایمیل شما منتشر نخواهد شد.

لطفا دیدگاه خود را با احترام به دیدگاه های دیگران و با توجه به محتوای مطلب درج کنید