ഉബുണ്ടു 18.04-ൽ PostgreSQL എങ്ങനെ ഇൻസ്റ്റാൾ ചെയ്യുകയും ഉപയോഗിക്കുകയും ചെയ്യാം


PostgreSQL (ചുരുക്കത്തിൽ പോസ്റ്റ്uഗ്രെസ്) ഒരു ഓപ്പൺ സോഴ്uസ്, ശക്തമായ, വിപുലമായ, ഉയർന്ന പ്രകടനവും സ്ഥിരതയുള്ള റിലേഷണൽ-ഡോക്യുമെന്റ് ഡാറ്റാബേസ് സിസ്റ്റവുമാണ്. സുരക്ഷിതമായ ഡാറ്റ സംഭരണത്തിനും മാനേജ്മെന്റിനുമായി ഇത് SQL ഭാഷ ഉപയോഗിക്കുകയും മെച്ചപ്പെടുത്തുകയും ചെയ്യുന്നു.

ഉയർന്ന ഡാറ്റാ സമഗ്രത ഉറപ്പാക്കിക്കൊണ്ട്, വലിയതും സങ്കീർണ്ണവുമായ ഡാറ്റ കൈകാര്യം ചെയ്യുന്നതിനും എന്റർപ്രൈസ്-ലെവൽ, തെറ്റ്-സഹിഷ്ണുത പരിതസ്ഥിതികൾ സജ്ജീകരിക്കുന്നതിനും ഇത് കാര്യക്ഷമവും വിശ്വസനീയവും അളക്കാവുന്നതുമാണ്. എപിഐകൾക്കൊപ്പം വരുന്ന സൂചികകൾ പോലെയുള്ള ഫീച്ചറുകൾ ഉപയോഗിച്ച് പോസ്റ്റ്uഗ്രെസ് വളരെ വിപുലീകരിക്കാവുന്നതാണ്, അതുവഴി നിങ്ങളുടെ ഡാറ്റ സ്റ്റോറേജ് വെല്ലുവിളികൾ പരിഹരിക്കുന്നതിന് നിങ്ങളുടേതായ പരിഹാരങ്ങൾ വികസിപ്പിക്കാനാകും.

ഈ ലേഖനത്തിൽ, ഒരു ഉബുണ്ടു 18.04 സെർവറിൽ PostgreSQL എങ്ങനെ ഇൻസ്റ്റാൾ ചെയ്യാമെന്ന് ഞങ്ങൾ വിശദീകരിക്കും (പഴയ ഉബുണ്ടു റിലീസുകളിലും ഇത് പ്രവർത്തിക്കുന്നു) അത് ഉപയോഗിക്കുന്നതിനുള്ള ചില അടിസ്ഥാന മാർഗങ്ങൾ പഠിക്കും.

ഉബുണ്ടുവിൽ PostgreSQL എങ്ങനെ ഇൻസ്റ്റാൾ ചെയ്യാം

ആദ്യം, റിപ്പോസിറ്ററി കോൺഫിഗറേഷൻ സംഭരിക്കുന്ന ഒരു ഫയൽ /etc/apt/sources.list.d/pgdg.list സൃഷ്uടിക്കുക, തുടർന്ന് നിങ്ങളുടെ സിസ്റ്റത്തിലേക്ക് റിപ്പോസിറ്ററി കീ ഇറക്കുമതി ചെയ്യുക, നിങ്ങളുടെ സിസ്റ്റം പാക്കേജുകളുടെ ലിസ്റ്റ് അപ്uഡേറ്റ് ചെയ്യുക, ഇനിപ്പറയുന്ന കമാൻഡുകൾ ഉപയോഗിച്ച് Postgres പാക്കേജ് ഇൻസ്റ്റാൾ ചെയ്യുക.

$ sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
$ sudo apt install wget ca-certificates
$ wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
$ sudo apt update
$ sudo apt install postgresql-10 pgadmin4 

പോസ്റ്റ്uഗ്രെസ് ഇൻസ്റ്റാൾ ചെയ്തുകഴിഞ്ഞാൽ, ഡാറ്റാബേസ് സേവനം സ്വയമേവ ആരംഭിക്കുകയും ഇനിപ്പറയുന്ന കമാൻഡ് ടൈപ്പുചെയ്യുന്നതിലൂടെ നിങ്ങൾക്ക് സ്ഥിരീകരിക്കുകയും ചെയ്യാം.

$ sudo systemctl status postgresql.service

PostgreSQL റോളുകളും ഡാറ്റാബേസുകളും എങ്ങനെ ഉപയോഗിക്കാം

പോസ്റ്റ്ഗ്രെസിൽ, ക്ലയന്റ് ആധികാരികത നിയന്ത്രിക്കുന്നത് /etc/postgresql/10/main/pg_hba.conf കോൺഫിഗറേഷൻ ഫയൽ ആണ്. ഡാറ്റാബേസ് അഡ്uമിനിസ്uട്രേറ്ററിനായുള്ള സ്ഥിരസ്ഥിതി പ്രാമാണീകരണ രീതി \പിയർ ആണ്, അതായത് ഓപ്പറേറ്റിംഗ് സിസ്റ്റത്തിൽ നിന്ന് ക്ലയന്റിന്റെ ഓപ്പറേറ്റിംഗ് സിസ്റ്റം ഉപയോക്തൃനാമം ലഭിക്കുകയും ലോക്കൽ കണക്ഷനുകൾക്കായി ആക്uസസ് അനുവദിക്കുന്നതിന് അഭ്യർത്ഥിച്ച ഡാറ്റാബേസ് ഉപയോക്തൃനാമവുമായി ഇത് പൊരുത്തപ്പെടുന്നുണ്ടോയെന്ന് പരിശോധിക്കുകയും ചെയ്യുന്നു (ഇനിപ്പറയുന്നത് പോലെ സ്ക്രീൻഷോട്ട്).

ഇൻസ്റ്റലേഷൻ പ്രക്രിയയിൽ, പാസ്uവേഡ് ഇല്ലാതെ പോസ്റ്റ്uഗ്രെസ് എന്ന ഒരു സിസ്റ്റം ഉപയോക്തൃ അക്കൗണ്ട് സൃഷ്ടിക്കപ്പെട്ടു, ഇതും സ്ഥിരസ്ഥിതി ഡാറ്റാബേസ് അഡ്മിനിസ്ട്രേറ്റർ ഉപയോക്തൃനാമമാണ്.

$ sudo vim /etc/postgresql/10/main/pg_hba.conf

കൂടാതെ, പോസ്റ്റ്uഗ്രേസിന് കീഴിൽ ഡാറ്റാബേസ് ആക്uസസ് പെർമിഷൻ മാനേജ്uമെന്റ് റോളുകൾ വഴിയാണ് നടത്തുന്നത്. റോൾ എങ്ങനെ സജ്ജീകരിച്ചിരിക്കുന്നു എന്നതിനെ ആശ്രയിച്ച് ഒരു റോൾ ഒരു ഡാറ്റാബേസ് ഉപയോക്താവായി അല്ലെങ്കിൽ ഒരു കൂട്ടം ഡാറ്റാബേസ് ഉപയോക്താക്കളായി കണക്കാക്കാം.

ഡിഫോൾട്ട് റോളും postgres ആണ്. പ്രധാനമായും, ഡാറ്റാബേസ് റോളുകൾ ആശയപരമായി ഓപ്പറേറ്റിംഗ് സിസ്റ്റം ഉപയോക്താക്കളുമായി പൂർണ്ണമായും ബന്ധിപ്പിച്ചിട്ടില്ല, എന്നാൽ പ്രായോഗികമായി അവ പ്രത്യേകമായിരിക്കില്ല (ഉദാഹരണത്തിന് ക്ലയന്റ് ആധികാരികത വരുമ്പോൾ).

പ്രധാനമായി, റോളുകൾക്ക് ഡാറ്റാബേസ് ഒബ്uജക്uറ്റുകൾ സ്വന്തമാക്കാം, കൂടാതെ ആ ഒബ്uജക്uറ്റുകൾക്ക് ആർക്കൊക്കെ ആക്uസസ്സ് ഉണ്ടെന്ന് നിയന്ത്രിക്കാൻ മറ്റ് റോളുകൾക്ക് ആ ഒബ്uജക്uറ്റുകളിൽ പ്രത്യേകാവകാശങ്ങൾ നൽകാനും കഴിയും. കൂടാതെ, ഒരു റോളിൽ മറ്റൊരു റോളിലേക്ക് അംഗത്വം നൽകാനും കഴിയും.

എൻക്രിപ്റ്റ് ചെയ്uത പാസ്uവേഡുകൾ ഉപയോഗിക്കുന്നതിനായി മറ്റ് റോളുകൾ കോൺഫിഗർ ചെയ്യുന്നതിന്, അവയ്ക്ക് നൽകിയിട്ടുള്ള ഡാറ്റാബേസുകൾ നിയന്ത്രിക്കുന്നതിന്, ഡിഫോൾട്ട് പോസ്റ്റ്uഗ്രേസ് റോളിന് പുറമെ, നിങ്ങൾ ഇതിലേക്ക് ലൈൻ മാറ്റേണ്ടതുണ്ട്.

Then restart the postgresql service to apply the recent changes.
$ sudo systemctl restart postgresql

ഉബുണ്ടുവിൽ PostgreSQL എങ്ങനെ ഉപയോഗിക്കാം

എല്ലാം സജ്ജീകരിച്ചുകഴിഞ്ഞാൽ, ഇനിപ്പറയുന്ന കമാൻഡ് ഉപയോഗിച്ച് നിങ്ങൾക്ക് പോസ്റ്റ്uഗ്രെസ് സിസ്റ്റം അക്കൗണ്ട് ആക്uസസ് ചെയ്യാൻ കഴിയും, അവിടെ -i ഫ്ലാഗ്, ടാർഗെറ്റ് ഉപയോക്താവിന്റെ പാസ്uവേഡ് ഡാറ്റാബേസ് എൻട്രിയിൽ ലോഗിൻ ഷെല്ലായി വ്യക്തമാക്കിയ ഷെൽ പ്രവർത്തിപ്പിക്കാൻ സുഡോയോട് പറയുന്നു.

$ sudo -i -u postgres 
$ psql		#to launch the postgres shell program  
postgres=#

പോസ്റ്റ്ഗ്രെസ് ഉപയോക്തൃ അക്കൗണ്ട് ആക്സസ് ചെയ്യാതെ തന്നെ പോസ്റ്റ്ഗ്രെസ് ഷെൽ നേരിട്ട് ആക്സസ് ചെയ്യുന്നതിന്, ഇനിപ്പറയുന്ന കമാൻഡ് പ്രവർത്തിപ്പിക്കുക.

$ sudo -i -u postgres psql

താഴെ പറയുന്ന കമാൻഡ് ടൈപ്പ് ചെയ്തുകൊണ്ട് നിങ്ങൾക്ക് postgres-ൽ നിന്ന് പുറത്തുകടക്കാനോ പുറത്തുകടക്കാനോ കഴിയും.

postgres=# \q

ഇനിപ്പറയുന്ന കമാൻഡ് ഉപയോഗിച്ച് ഒരു പുതിയ ഉപയോക്തൃ റോൾ സൃഷ്ടിക്കുക.

postgres=# CREATE ROLE tecmint;

ഒരു ലോഗിൻ ആട്രിബ്യൂട്ട് ഉപയോഗിച്ച് ഒരു റോൾ സൃഷ്ടിക്കുന്നതിന്, ഇനിപ്പറയുന്ന കമാൻഡ് ഉപയോഗിക്കുക (ലോഗിൻ ആട്രിബ്യൂട്ട് ഉള്ള റോളുകൾ ഒരു ഡാറ്റാബേസ് ഉപയോക്താക്കളെപ്പോലെ തന്നെ കണക്കാക്കാം).

postgres=#CREATE ROLE tecmint LOGIN;
OR
postgres=#CREATE USER name;	#assumes login function by default

ഒരു പാസ്uവേഡ് ഉപയോഗിച്ചും ഒരു റോൾ സൃഷ്ടിക്കാൻ കഴിയും, ഡാറ്റാബേസിലേക്ക് കണക്uറ്റ് ചെയ്യുമ്പോൾ എൻക്രിപ്റ്റ് ചെയ്uത പാസ്uവേഡ് നൽകാൻ ഉപയോക്താക്കളോട് ആവശ്യപ്പെടുന്നതിന് നിങ്ങൾ ക്ലയന്റ് പ്രാമാണീകരണ രീതി കോൺഫിഗർ ചെയ്uതിട്ടുണ്ടെങ്കിൽ ഇത് ഉപയോഗപ്രദമാണ്.

postgres=#CREATE ROLE tecmint PASSWORD 'passwd_here'

നിലവിലുള്ള ഉപയോക്തൃ റോളുകൾ ലിസ്റ്റുചെയ്യുന്നതിന്, ഈ കമാൻഡുകളിൽ ഏതെങ്കിലും ഉപയോഗിക്കുക.

postgres=# \du 				#shows actual users
OR
postgres=# SELECT rolname FROM pg_roles;

നിലവിലുള്ള ഏതെങ്കിലും ഉപയോക്തൃ റോൾ ഉപേക്ഷിക്കുന്നതിന്, കാണിച്ചിരിക്കുന്നതുപോലെ DROP ROLE കമാൻഡ് ഉപയോഗിക്കുക.

postgres=# DROP ROLE tecmint;

നിങ്ങൾ ഒരു പ്രത്യേക പേരിൽ ഒരു റോൾ സൃഷ്ടിച്ചുകഴിഞ്ഞാൽ (ഉദാഹരണത്തിന് tecmint ഉപയോക്താവ്), നിങ്ങൾക്ക് ഒരു ഡാറ്റാബേസ് (റോളിന്റെ അതേ പേരിൽ) സൃഷ്ടിക്കാൻ കഴിയും, അത് കാണിച്ചിരിക്കുന്നതുപോലെ ആ റോൾ കൈകാര്യം ചെയ്യും.

postgres=# CREATE DATABASE tecmint;

ഇപ്പോൾ ഡാറ്റാബേസ് tecmint നിയന്ത്രിക്കുന്നതിന്, tecmint റോളായി postgres ഷെൽ ആക്uസസ് ചെയ്യുക, നിങ്ങളുടെ പാസ്uവേഡ് ഇനിപ്പറയുന്ന രീതിയിൽ നൽകുക.

$ sudo -i -u tecmint psql

പട്ടികകൾ സൃഷ്uടിക്കുന്നത് വളരെ എളുപ്പമാണ്, കാണിച്ചിരിക്കുന്നതുപോലെ TecMint.com രചയിതാക്കളെക്കുറിച്ചുള്ള വിവരങ്ങൾ സംഭരിക്കുന്ന രചയിതാക്കൾ എന്ന പേരിൽ ഞങ്ങൾ ഒരു ടെസ്റ്റ് ടേബിൾ സൃഷ്uടിക്കും.

tecmint=>CREATE TABLE authors (
    code      char(5) NOT NULL,
    name    varchar(40) NOT NULL,
    city varchar(40) NOT NULL
    joined_on date NOT NULL,	
    PRIMARY KEY (code)
);

ഒരു പട്ടിക സൃഷ്ടിച്ച ശേഷം, ഇനിപ്പറയുന്ന രീതിയിൽ കുറച്ച് ഡാറ്റ ഉപയോഗിച്ച് അത് പോപ്പുലേറ്റ് ചെയ്യാൻ ശ്രമിക്കുക.

tecmint=> INSERT INTO authors VALUES(1,'Ravi Saive','Mumbai','2012-08-15');

ഒരു പട്ടികയിൽ സംഭരിച്ചിരിക്കുന്ന ഡാറ്റ കാണുന്നതിന്, നിങ്ങൾക്ക് ഒരു SELECT കമാൻഡ് പ്രവർത്തിപ്പിക്കാം.

tecmint=> SELECT * FROM authors;

ഇനിപ്പറയുന്ന കമാൻഡ് ഉപയോഗിച്ച് നിങ്ങൾക്ക് നിലവിലെ ഡാറ്റാബേസിലെ എല്ലാ പട്ടികകളും ലിസ്റ്റ് ചെയ്യാൻ കഴിയും.

tecmint=>\dt

നിലവിലെ ഡാറ്റാബേസിൽ ഒരു പട്ടിക ഇല്ലാതാക്കാൻ, DROP കമാൻഡ് ഉപയോഗിക്കുക.

tecmint=> DROP TABLE authors;

എല്ലാ ഡാറ്റാബേസുകളും ലിസ്റ്റുചെയ്യുന്നതിന്, ഇനിപ്പറയുന്ന ഏതെങ്കിലും കമാൻഡുകൾ ഉപയോഗിക്കുക.

tecmint=>SELECT datname FROM pg_database;
OR
tecmint=>\list	#shows a detailed description 
OR
tecmint=>\l

നിങ്ങൾക്ക് ഒരു ഡാറ്റാബേസ് ഇല്ലാതാക്കണമെങ്കിൽ, ഉദാഹരണത്തിന്, DROP കമാൻഡ് ഉപയോഗിക്കുക.

tecmint=>DROP DATABASE tecmint;

ഇനിപ്പറയുന്ന കമാൻഡ് ഉപയോഗിച്ച് നിങ്ങൾക്ക് ഒരു ഡാറ്റാബേസിൽ നിന്ന് മറ്റൊന്നിലേക്ക് എളുപ്പത്തിൽ മാറാനും കഴിയും.

tecmint=>\connect database_name

കൂടുതൽ വിവരങ്ങൾക്ക്, PostgreSQL 10.4 ഡോക്യുമെന്റേഷൻ കാണുക.

തൽക്കാലം അത്രമാത്രം! ഈ ലേഖനത്തിൽ, ഉബുണ്ടു 18.04-ൽ PostgreSQL ഡാറ്റാബേസ് മാനേജ്മെന്റ് സിസ്റ്റം എങ്ങനെ ഇൻസ്റ്റാൾ ചെയ്യാമെന്നും ഉപയോഗിക്കാമെന്നും ഞങ്ങൾ വിശദീകരിച്ചിട്ടുണ്ട്. അഭിപ്രായങ്ങളിൽ നിങ്ങളുടെ ചോദ്യങ്ങളോ ചിന്തകളോ ഞങ്ങൾക്ക് അയയ്ക്കാം.