آموزش نصب پایگاه داده PostgreSQL در لینوکس
در این مقاله میخوانید
PostgreSQL یا Postgres سیستم مدیریت پایگاه داده رابطهای است که برپایه زبان کوئری SQL ایجاد شده است. این دیتابیس که جزو دیتابیسهای برتر دنیا محسوب میشود، مطابق با استانداردها طراحی شده است و بسیاری از ویژگیهای پیشرفته مانند تراکنشهای مطمئن و سیستمهای بدون قفل خواندن را ارائه میدهد. PostgreSql بهراحتی در سرورهای اوبونتو نصب میشود و میتوانید از آن استفاده کنید. در این مقاله، نحوه نصب PostgreSql در اوبونتو 20.04 را به شما آموزش خواهیم داد؛ پس تا پایان با ما همراه باشید.
خرید سرویس لینوکسی برای نصب PostgreSql
از این مقاله میتوانید برای مدیریت سرویسهای لینوکسی خود استفاده کنید و اگر قصد خرید سرور لینوکس پارس پک را دارید، میتوانید با کارشناسان فروش ما در ارتباط باشید. همچنین، میتوانید جهت کسب اطلاعات بیشتر به لینکهای زیر مراجعه کنید.
پیشنیازها
- سرور اوبونتو 20.04 با تنظیمات پیکربندی پیشفرض
- کاربر با مجوزهای sudo
- سیستم فایروال ابتدایی
مرحله اول: نصب PostgreSQL
برای نصب PostgreSQL، ابتدا فهرست پکیجهای محلی سرور خود را بازخوانی کنید:
sudo apt update
سپس، پکیج Postgres را بههمراه پکیج -contrib نصب کنید که ابزارها و عملکردهای بیشتری را دراختیارتان قرار میدهد:
sudo apt install postgresql postgresql-contrib
درادامه، از آغاز به کار سرویس مطمئن شوید:
sudo systemctl start postgresql.service
مقایسه کامل سیستمهای مدیریت دیتابیس نسبی SQLite و MySQL و PostgreSQL را در مقاله زیر بخوانید.
مرحله دوم: استفاده از نقشها و پایگاههای داده PostgreSQL
بهطورپیشفرض، Postgres از مفهومی به نام «نقشها» (Roles) برای پیادهسازی سیستم احراز هویت و سطح دسترسیها استفاده میکند. این نقشها شباهت زیادی با نقشهای لینوکس دارند و از جهاتی مانند کاربرها و گروههای معمولی لینوکس هستند.
پس از نصب، سیستم احراز هویت Postgres تنظیم میشود؛ بدینمعنی که Postgres یک نقش را به یک حساب Unix/Linux میدهد. اگر نقشی در Postgres وجود داشته باشد، نام کاربری Unix/Linux با همین نام میتواند بهعنوان آن نقش وارد شود.
در مراحل نصب، یک حساب به نام postgres ایجاد میشود که به آن نقش پیشفرض postgres داده شده است. چند راه برای استفاده از این حساب برای دسترسی به Postgres وجود دارد. یکی از راهها این است که با اجرای دستور زیر به حساب postgres روی سرور خود بروید:
sudo -i -u postgres
سپس با اجرای کد زیر، میتوانید به دستور Postgres دسترسی پیدا کنید:
psql
با این کار وارد prompt سیستم PostgreSQL میشوید و از اینجا میتوانید بلافاصله با سیستم مدیریت پایگاه داده ارتباط برقرار و از آن استفاده کنید.
برای خروج از prompt سیستم PostgreSQL، کد زیر را اجرا کنید:
\q
این دستور شما را به خط فرمان postgres Linux برمیگرداند. برای بازگشت به کاربر عادی سیستم خود، دستور exit را اجرا کنید:
exit
راه دیگر برای دسترسی به prompt سیستم Postgres، اجرای مستقیم دستور psql بهعنوان حساب postgres برای ارتباط با sudo است:
sudo -u postgres psql
این دستور شما را مستقیماً وارد Postgres میکند. مجدداً میتوانید با اجرای کد زیر از Postgres خارج شوید:
\q
مرحله سوم: ایجاد نقش جدید
اگر بهعنوان اکانت postgres وارد شدهاید، با اجرای دستور زیر میتوانید نقش جدیدی ایجاد کنید:
createuser –interactive
درعوض، اگر ترجیح میدهید از sudo برای انجام این کار استفاده کنید، دستور زیر را اجرا کنید:
sudo -u postgres createuser --interactive
درهرصورت، باید به سؤالات مطرحشده براساس نیازتان جواب دهید تا بتوانید نقش جدیدی ایجاد کنید.
خروجی:
Enter name of role to add: sammy Shall the new role be a superuser? (y/n) y
مرحله چهارم: ایجاد پایگاه داده جدید
فرض دیگری که در سیستم Postgres بهصورت پیشفرض وجود دارد، این است که هر نقشی که وارد سیستم میشود، پایگاه دادهای با همان نام دارد که میتواند به آن دسترسی داشته باشد. بدینترتیب، اگر نام کاربریای که در بخش قبل ایجاد کردهاید، Sammy باشد، باید به دیتابیسی با نام Sammy دسترسی داشته باشد. همچنین، میتوانید با دستور created دیتابیسی جدید ایجاد کنید.
اگر بهعنوان حساب postgres وارد شدهاید، کد زیر را برای ایجاد پایگاه داده جدید تایپ کنید:
createdb Sammy
درعوض، اگر میخواهید ازطریق sudo این کار را انجام دهید، دستور زیر را اجرا کنید:
sudo -u postgres createdb sammy
مرحله پنجم: بازکردن Prompt در سیستم Postgres با نقش جدید
برای ورود به سیستم با احراز هویت مبتنیبر ident، به کاربر لینوکسی با همان نام و نقش و پایگاه داده Postgres ابتدایی خود نیاز دارید. اگر به کاربر دیگری در لینوکس دسترسی ندارید، میتوانید با دستور adduser کاربری جدید ایجاد کنید. این یعنی شما باید این کار را با کاربر غیر root لینوکس انجام و با sudo امتیازات لازم را دهید. بهعبارتدیگر، نباید بهعنوان کاربر postgres وارد شده باشید:
sudo adduser Sammy
هنگامیکه حساب جدید ایجاد شد، میتوانید با اجرای دستورهای زیر بین پایگاههای داده سوئیچ کنید و به پایگاههای داده دیگر متصل شوید:
sudo -i -u sammy psql
یا میتوانید این کار را بهصورت دستور یک خطی انجام دهید:
sudo -u sammy psql
این دستور شما را بهطورخودکار وارد آن دیتابیس میکند، با این فرض که همه اجزا بهدرستی پیکربندی شدهاند. اگر میخواهید کاربر شما به پایگاه داده دیگری متصل شود، میتوانید با تعیین پایگاه داده این کار را انجام دهید:
psql -d postgres
پس از ورود به سیستم، میتوانید اطلاعات اتصال فعلی خود را با اجرای دستور زیر مشاهده کنید:
\conninfo
خروجی:
You are connected to database "sammy" as user "sammy" via socket in "/var/run/postgresql" at port "5432".
آموزش استفاده از PostgreSQL با Node.js در اوبونتو 20.04 را در مقاله زیر بخوانید.
مرحله ششم: ایجاد و حذف جداول
اکنون که PostgreSQL را بهطورکامل نصب و پیکربندی کردید، بهراحتی میتوانید به آن متصل شوید و از آن استفاده کنید. همچنین، برای اطمینان از صحت کارکرد این دیتابیس، بهتر است جدولی ایجاد کنید.
سینتکس اصلی برای ایجاد جداول بهشرح زیر است:
CREATE TABLE table_name ( column_name1 col_type (field_length) column_constraints, column_name2 col_type (field_length), column_name3 col_type (field_length) );
در این سینتکس، ابتدا برای هر جدول یک نام در نظر بگیرید و سپس ستونها و ویژگیهای آنها مانند حداکثر طول و نوع داده را تعیین کنید. هر جدولی که نیاز دارید، میتوانید با این دستور ایجاد کنید. برای مثال، میتوانید جدول زیر را ایجاد کنید:
CREATE TABLE playground ( equip_id serial PRIMARY KEY, type varchar (50) NOT NULL, color varchar (25) NOT NULL, location varchar(25) check (location in ('north', 'south', 'west', 'east', 'northeast', 'southeast', 'southwest', 'northwest')), install_date date );
در این دستور، جدولی با نام playground ایجاد میشود که تجهیزات یک زمین بازی را در آن میتوانید ذخیره کنید. ستون اول این جدول با نام equip_id مربوط به equipment ID یا شماره تجهیزات است که نوع دادهای آن serial است (سریال نوعی داده عددی است که بهصورت خودکار افزایش مییابد). این ستون نیز محدودیت PRIMARY KEY دارد؛ یعنی مقادیر درون آن باید منحصربهفرد (یونیک) باشند و تهی نباشند.
دو خط بعد، دو ستون برای اطلاعات بیشتر تجهیزات با نامهای type و color ایجاد شدهاند که هیچکدام نمیتوانند خالی یا NULL باشند. خط بعد از اینها، ستون location را ایجاد میکند که محدودیتهایی دارد. مقادیر این ستون باید یکی از آن ۸ مقدار تعریفشده باشند. در خط آخر نیز، ستون install_date ایجاد شده است که تاریخ نصب تجهیزات را ثبت میکند. اگر دقت کرده باشید، برای دو ستون equip_id و install_date طول فیلد را مشخص نکردیم؛ زیرا فرمت آنها ضمنی است و به محدودیت نیاز ندارند.
با دستور زیر میتوانید جدول ایجادشده خود را ببینید و از صحت کارکرد دیتابیس PostgreSQL مطمئن شوید:
\d
خروجی:
List of relations Schema | Name | Type | Owner --------+-------------------------+----------+------- public | playground | table | sammy public | playground_equip_id_seq | sequence | sammy (2 rows)
این دستور جزئیات کامل جداول را نشان میدهد؛ مثلاً ستون playground_equip_id_seq که نوع دادهای آن sequence است. این نوع داده فقط نمایشی است و از ستون equip_id که از نوع serial بوده، بهطورخودکار ایجاد میشود.
اگر میخواهید فقط جداول اصلی را بدون sequence ببینید، دستور زیر را اجرا کنید:
\dt
خروجی:
List of relations Schema | Name | Type | Owner --------+------------+-------+------- public | playground | table | sammy (1 row)
جمعبندی
PostgreSQL دیتابیسی بزرگ است و برای کسب اطلاعات بیشتر درباره آن، میتوانید به وبسایت رسمی آن مراجعه کنید. در این مطلب، هرآنچه برای نصب سریع و بیدردسر پایگاه داده postgreSQL روی سرور اوبونتو 20.04 نیاز داشتید، به شما آموزش دادیم. اگر درباره نصب این دیتابیس هرگونه ابهام یا سؤالی دارید، آن را ازطریق کامنت با ما در میان بگذارید.
سؤالات متداول
۱. چگونه بفهمیم که postgres در اوبونتو نصب شده است یا نه؟
با استفاده از خط فرمان یا Shell:
- $ postgres -V postgres (PostgreSQL) 9.3.10
- $ /usr/lib/postgresql/9.3/bin/postgres -V postgres (PostgreSQL) 9.3.10
- $ psql -V psql (PostgreSQL) 9.3.10
- $ /usr/lib/postgresql/9.3/bin/psql -V psql (PostgreSQL) 9.3.10
۲. PostgreSQL کجا نصب شده است؟
همه فایلها بهطورپیشفرض در /usr/local/pgsql نصب میشوند؛ البته میتوانید در هنگام نصب، محل نصب را تغییر دهید.
۳. آیا اوبونتو با PostgreSQL ارائه میشود؟
PostgreSQL بهطورپیش فرض در تمام نسخههای اوبونتو موجود است. بااینحال، اوبونتو نسخهای خاص از PostgreSQL را snapshots میکند و سپس در طول عمر آن نسخه اوبونتو پشتیبانی میشود. شایان ذکر است سایر نسخههای PostgreSQL ازطریق مخزن PostgreSQL دردسترس هستند.
Pgadmin .۴ از چه پورتی استفاده میکند؟
پورت پیشفرض آن ۵۴۳۲ است.