خوش آموز درخت تو گر بار دانش بگیرد، به زیر آوری چرخ نیلوفری را
آموزش نصب پایگاه داده PostgreSQL در CentOS 8
PostgreSQL یک پایگاه داده رابطهای object-oriented یا شی گرا و منبع باز است که با نام Postgres هم شناخته میشود. این سیستم مدیریت پایگاه داده اولین سیستمی است که برای محیط مبتنی بر UNIX طراحی شده است. اما طراحی آن با گذشت زمان تغییر کرد و به همین دلیل PostgreSQL میتواند بر روی سایر سیستمهای عامل و همچنین Solaris، Mac OS X و ویندوز هم اجرا شود. PostgreSQL یک نرم افزار رایگان است و کد منبع آن تحت مجوز PostgreSQL به صورت رایگان در دسترس است. شما می توانید PostgreSQL را در هر قالبی مطابق با نیاز خود تغییر دهید و از آن استفاده کنید.
در این مقاله نحوه نصب و راه اندازی PostgreSQL در سیستم Centos 8 با استفاده از Terminal را خواهید آموخت. برای شروع کار terminal را باز کنید. پیشنهاد می کنیم که قبل از نصب هر پکیج نرم افزاری جدید، پکیج های سیستم خود را آپدیت کنید. برای این منظور دستور زیر را تایپ کنید تا پکیج های فعلی سیستم تان آپدیت شود:
حال با کمک دستور زیر ماژول های در دسترس PostgreSQL را لیست کنید:
هدف ما انتخاب بالاترین و جدیدترین نسخه و نصب آن است. به خروجی دستور پس باید توجه داشته باشید. هر خروجی دو پروفایل server و Client را دارد. همانطور که در تصویر زیر مشاهده می کنید، در حال حاضر بروزترین نسخه، ورژن 13 می باشد. برای نصب این ورژن کافیست از دستور زیر استفاده کنید:
نصب PostgreSQL ورژن 9.6 در CentOS 8
نصب PostgreSQL ورژن 10 در CentOS 8
نصب PostgreSQL ورژن 12 در CentOS 8
نصب PostgreSQL ورژن 13 در CentOS 8
نسخه مورد نظر ما نسخه 13 می باشد از این رو دستور آخر را در Terminal سیستم عامل اوبونتو اجرا می کنیم. درخواست ها را y کرده و Enter کنید تا دانلود و نصب آغاز شود.
همچنین شاید قصد داشته باشید پکیج contrib را هم نصب کنید که چندین ویژگی اضافی را برای سیستم پایگاه داده PostgreSQL فراهم می کند.
پس از اتمام نصب، پایگاه داده PostgreSQL را با دستور زیر initialize کنید:
خروجی شما هم باید مانند خروجی زیر باشد:
حالا با کمک دستور زیر سرویس PostgreSQL را Start و همچنین Enable کنید تا در زمان بوت Centos بصورت خودکار اجرا شود.
از ابزار psql برای تأیید نصب و اتصال به پایگاه داده PostgreSQL سرور و نمایش ورژن آن استفاده کنید:
خروجی شما چیزی مانند زیر خواهد بود:
PostgreSQL مجوزهای دسترسی به پایگاه داده را با استفاده از مفهوم ی با نام role ها کنترل می کند. یک role می تواند نشان دهنده یک کاربر پایگاه داده یا گروهی از کاربران پایگاه داده باشد. PostgreSQL از چندین روش احراز هویت پشتیبانی می کند. متداول ترین روش های مورد استفاده عبارتند از:
Trust: تا زمانی که شرایط تعریف شده در pg_hba.conf رعایت شود، یک role می تواند بدون پسورد وصل شود.
Password: یک role می تواند با ارائه پسورد متصل شود. پسوردها را می توان به صورت scram-sha-256، md5 و متن خالی بدون هیچ رمزنگاری ای ذخیره کرد.
Ident: فقط TCP/IP connection ها پشتیبانی می شود. با به دست آوردن نام کاربری سیستم عامل کلاینت و map کردن نام کاربری کار می کند.
Peer: مانند Ident، اما فقط در اتصالات لوکال پشتیبانی می شود.
احراز هویت PostgreSQL client در فایل پیکربندی به نام pg_hba.conf تعریف شده است. بطور پیش فرض، برای اتصالات لوکال PostgreSQL طوری تنظیم شده که از روش peer authentication استفاده کند.
هنگام نصب سرور PostgreSQL، کاربر postgres به طور خودکار ایجاد می شود. این کاربر در واقع یک superuser یا ابر یوزر برای این instance از PostgreSQL است. در حقیقت معادل کاربر root در MySQL است.
برای لاگین به سرور PostgreSQL به عنوان کاربر postgres ابتدا به کاربر سوئیچ کنید و سپس با استفاده از ابزار psql به دستور PostgreSQL دسترسی پیدا کنید:
در اینجا می توانید با شل PostgreSQL ارتباط و تعامل داشته باشید و در صورت نیاز به خروج از shell کافیست دستور \q را تایپ و Enter کنید تا به خط فرمان Cent os برگردید.
فقط super user و role های دارای امتیاز CREATEROLE میتوانند role های جدید ایجاد کنند. در مثال زیر، یک role جدید به نام john، یک پایگاه داده به نام johndb ایجاد می کنیم و به کاربر پایگاه داده امتیازها را می دهیم.
در گام نخست باید به شل PostgreSQL متصل شویم:
برای ایجاد یک role جدید PostgreSQL کافیست دستور زیر را اجرا کنید:
سپس دیتابیس جدید را ایجاد می کنیم:
و در آخر طبق سناریو، به کاربر پایگاه داده امتیازات را می دهیم:
بصورت پیشفرض PostgreSQL server فقط در حال listening اینترفیس لوکال 127.0.0.1 است. برای فعال کردن دسترسی ریموت به PostgreSQL server فایل پیکربندی را باز کنید:
ویرایشگر را به پایین اسکرول کرده تا به بخش CONNECTIONS AND AUTHENTICATION برسید و در اینجا قسمت listen_addresses که بصورت پیشفرض برابر با localhost است را به * تعییر دهید:
سپس به فشردن Ctrl+S تغییرات را ذخیره کرده و در ادامه با فشردن Ctrl+X از ویرایشگر خارج شده و به خط فرمان برگردید.
فایل را ذخیره کرده و سرویس PostgreSQL را ریستارت کنید:
سپس تغییرات را با اجرای دستور زیر بررسی کنید:
خروجی بالا نشان می دهد که PostgreSQL سرور در حال گوش دادن به پورت پیش فرض در همه اینترفیس ها (0.0.0.0) است.
در این مقاله نحوه نصب و راه اندازی PostgreSQL در سیستم Centos 8 با استفاده از Terminal را خواهید آموخت. برای شروع کار terminal را باز کنید. پیشنهاد می کنیم که قبل از نصب هر پکیج نرم افزاری جدید، پکیج های سیستم خود را آپدیت کنید. برای این منظور دستور زیر را تایپ کنید تا پکیج های فعلی سیستم تان آپدیت شود:
sudo dnf update
حال با کمک دستور زیر ماژول های در دسترس PostgreSQL را لیست کنید:
dnf module list postgresql
هدف ما انتخاب بالاترین و جدیدترین نسخه و نصب آن است. به خروجی دستور پس باید توجه داشته باشید. هر خروجی دو پروفایل server و Client را دارد. همانطور که در تصویر زیر مشاهده می کنید، در حال حاضر بروزترین نسخه، ورژن 13 می باشد. برای نصب این ورژن کافیست از دستور زیر استفاده کنید:
نصب PostgreSQL ورژن 9.6 در CentOS 8
sudo dnf install @postgresql:9.6
نصب PostgreSQL ورژن 10 در CentOS 8
sudo dnf install @postgresql:10
نصب PostgreSQL ورژن 12 در CentOS 8
sudo dnf install @postgresql:12
نصب PostgreSQL ورژن 13 در CentOS 8
sudo dnf install @postgresql:13
نسخه مورد نظر ما نسخه 13 می باشد از این رو دستور آخر را در Terminal سیستم عامل اوبونتو اجرا می کنیم. درخواست ها را y کرده و Enter کنید تا دانلود و نصب آغاز شود.
همچنین شاید قصد داشته باشید پکیج contrib را هم نصب کنید که چندین ویژگی اضافی را برای سیستم پایگاه داده PostgreSQL فراهم می کند.
sudo dnf install postgresql-contrib
پس از اتمام نصب، پایگاه داده PostgreSQL را با دستور زیر initialize کنید:
sudo postgresql-setup initdb
خروجی شما هم باید مانند خروجی زیر باشد:
Initializing database ... OK
حالا با کمک دستور زیر سرویس PostgreSQL را Start و همچنین Enable کنید تا در زمان بوت Centos بصورت خودکار اجرا شود.
sudo systemctl enable --now postgresql
از ابزار psql برای تأیید نصب و اتصال به پایگاه داده PostgreSQL سرور و نمایش ورژن آن استفاده کنید:
sudo -u postgres psql -c "SELECT version();"
خروجی شما چیزی مانند زیر خواهد بود:
PostgreSQL 13.3 on x86_64-redhat-linux-gnu, compiled by gcc (GCC) 8.3.1 2019112
1 (Red Hat 8.3.1-5), 64-bit
PostgreSQL مجوزهای دسترسی به پایگاه داده را با استفاده از مفهوم ی با نام role ها کنترل می کند. یک role می تواند نشان دهنده یک کاربر پایگاه داده یا گروهی از کاربران پایگاه داده باشد. PostgreSQL از چندین روش احراز هویت پشتیبانی می کند. متداول ترین روش های مورد استفاده عبارتند از:
Trust: تا زمانی که شرایط تعریف شده در pg_hba.conf رعایت شود، یک role می تواند بدون پسورد وصل شود.
Password: یک role می تواند با ارائه پسورد متصل شود. پسوردها را می توان به صورت scram-sha-256، md5 و متن خالی بدون هیچ رمزنگاری ای ذخیره کرد.
Ident: فقط TCP/IP connection ها پشتیبانی می شود. با به دست آوردن نام کاربری سیستم عامل کلاینت و map کردن نام کاربری کار می کند.
Peer: مانند Ident، اما فقط در اتصالات لوکال پشتیبانی می شود.
احراز هویت PostgreSQL client در فایل پیکربندی به نام pg_hba.conf تعریف شده است. بطور پیش فرض، برای اتصالات لوکال PostgreSQL طوری تنظیم شده که از روش peer authentication استفاده کند.
هنگام نصب سرور PostgreSQL، کاربر postgres به طور خودکار ایجاد می شود. این کاربر در واقع یک superuser یا ابر یوزر برای این instance از PostgreSQL است. در حقیقت معادل کاربر root در MySQL است.
برای لاگین به سرور PostgreSQL به عنوان کاربر postgres ابتدا به کاربر سوئیچ کنید و سپس با استفاده از ابزار psql به دستور PostgreSQL دسترسی پیدا کنید:
sudo su - postgres
psql
در اینجا می توانید با شل PostgreSQL ارتباط و تعامل داشته باشید و در صورت نیاز به خروج از shell کافیست دستور \q را تایپ و Enter کنید تا به خط فرمان Cent os برگردید.
\q
فقط super user و role های دارای امتیاز CREATEROLE میتوانند role های جدید ایجاد کنند. در مثال زیر، یک role جدید به نام john، یک پایگاه داده به نام johndb ایجاد می کنیم و به کاربر پایگاه داده امتیازها را می دهیم.
در گام نخست باید به شل PostgreSQL متصل شویم:
sudo -u postgres psql
برای ایجاد یک role جدید PostgreSQL کافیست دستور زیر را اجرا کنید:
CREATE ROLE john;
سپس دیتابیس جدید را ایجاد می کنیم:
CREATE DATABASE johndb;
و در آخر طبق سناریو، به کاربر پایگاه داده امتیازات را می دهیم:
GRANT ALL PRIVILEGES ON DATABASE johndb TO john;
بصورت پیشفرض PostgreSQL server فقط در حال listening اینترفیس لوکال 127.0.0.1 است. برای فعال کردن دسترسی ریموت به PostgreSQL server فایل پیکربندی را باز کنید:
sudo nano /var/lib/pgsql/data/postgresql.conf
ویرایشگر را به پایین اسکرول کرده تا به بخش CONNECTIONS AND AUTHENTICATION برسید و در اینجا قسمت listen_addresses که بصورت پیشفرض برابر با localhost است را به * تعییر دهید:
سپس به فشردن Ctrl+S تغییرات را ذخیره کرده و در ادامه با فشردن Ctrl+X از ویرایشگر خارج شده و به خط فرمان برگردید.
فایل را ذخیره کرده و سرویس PostgreSQL را ریستارت کنید:
sudo systemctl restart postgresql
سپس تغییرات را با اجرای دستور زیر بررسی کنید:
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) است.
نمایش دیدگاه ها (1 دیدگاه)
دیدگاه خود را ثبت کنید: