از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
روش نصب PostgreSQL در CentOS 8
سرفصلهای مطلب
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
-
برای نصب استریم پیش فرض، سرور PostgreSQL نسخه 10.0 را تایپ کنید:
sudo dnf install @postgresql:10
-
برای نصب سرور 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 مجوزهای دسترسی به پایگاه داده را با استفاده از مفهوم نقش ها کنترل می کند. یک نقش می تواند نشان دهنده یک کاربر پایگاه داده یا گروهی از کاربران پایگاه داده باشد.
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 - postgres
psql
از اینجا می توانید با نمونه PostgreSQL تعامل داشته باشید. برای خروج از پوسته PostgreSQL، تایپ کنید:
\q
همچنین میتوانید بدون تعویض کاربر با دستور PostgreSQL به اعلان PostgreSQL دسترسی پیدا کنید sudo
دستور:
sudo -u postgres psql
به طور معمول postgres
کاربر فقط از localhost.
ایجاد نقش و پایگاه داده PostgreSQL
فقط ابرکاربران و نقش ها با CREATEROLE
امتیاز می تواند نقش های جدیدی ایجاد کند.
در مثال زیر یک نقش جدید با نام ایجاد می کنیم john
، پایگاه داده ای به نام johndb
، و امتیازاتی را در پایگاه داده اعطا کنید.
-
ابتدا به پوسته PostgreSQL متصل شوید:
sudo -u postgres psql
-
با استفاده از دستور زیر یک نقش PostgreSQL جدید ایجاد کنید:
CREATE ROLE john;
-
ایجاد یک پایگاه داده جدید:
CREATE DATABASE johndb;
-
با اجرای کوئری زیر به کاربر پایگاه داده امتیاز بدهید:
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
بخش و خط زیر را اضافه/ویرایش کنید:
#------------------------------------------------------------------------------
# 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) است.
آخرین مرحله پیکربندی سرور برای پذیرش اتصالات راه دور با ویرایش آن است 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
اگر مشکلی دارید یا بازخوردی دارید، در زیر نظر دهید.
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم
زمان انتشار: 1402-12-27 12:22:02