PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

Ubuntu 20.04 DigitalOcean पर PostgreSQL 12 कैसे स्थापित करें?

PostgreSQL सुविधाएँ और उपयोग के मामले

PostgreSQL एक ओपन-सोर्स ऑब्जेक्ट-रिलेशनल डेटाबेस मैनेजमेंट सिस्टम (DBMS) है। यह एक उन्नत डेटाबेस प्रबंधन और विश्लेषण प्रणाली है जो मुख्य रूप से ईकामर्स प्लेटफॉर्म, भुगतान लेनदेन और विभिन्न डेटा वेयरहाउसिंग समाधानों के लिए उपयोग की जाती है। यह लगभग 30 से अधिक वर्षों से है और हर साल नियमित रूप से अपडेट किया जाता है, ट्रिगर्स, उपयोगकर्ता-परिभाषित प्रकार और कार्यों, उप-प्रश्नों आदि जैसे विभिन्न SQL कार्यों का समर्थन करता है।

PostgreSQL दुनिया के सबसे उन्नत ओपन सोर्स डेटाबेस में से एक है। यह कई उत्पादन और विकास उपयोग के मामलों के लिए उपयुक्त है। यह उन्नत विभाजन और क्वेरी प्रदर्शन (विशेष रूप से बड़े डेटासेट पर), इष्टतम स्थान उपयोग के लिए बी-ट्री एन्हांसमेंट, बहु-स्तंभ सबसे सामान्य मूल्य (एमसीवी) आंकड़े, क्वेरी इनलाइनिंग और चेकसम नियंत्रण के साथ सामान्य तालिका अभिव्यक्ति जैसे कई लाभ प्रदान करता है।

DigitalOcean पर Ubuntu 20.04 के बारे में कुछ शब्द

उबंटू एक लोकप्रिय ओपन-सोर्स डेस्कटॉप ऑपरेटिंग सिस्टम है। उबंटू 20.04 में कई अत्याधुनिक विशेषताएं शामिल हैं, जैसे कि ZFS स्नैपशॉट को प्रबंधित करने के लिए एक उपकरण, एक प्रमुख कर्नेल बम्प और सुरक्षा सुधार। DigitalOcean क्लाउड प्लेटफॉर्म क्लाउड में अनुप्रयोगों को विकसित करने, प्रबंधित करने और स्केल करने के लिए एक मजबूत बुनियादी ढांचा और वैश्विक उपलब्धता प्रदान करता है। इसकी गणना, भंडारण, डेटाबेस और नेटवर्किंग उत्पादों के साथ, डेवलपर्स वेब और मोबाइल एप्लिकेशन, स्ट्रीमिंग सेवाएं, गेम, सास समाधान और बहुत कुछ बना सकते हैं। साझा निजी नेटवर्किंग, वन-क्लिक DevOps टूल और SSD हार्ड ड्राइव जैसी सुविधाओं की पेशकश करते हुए, DigitalOcean मिशन-महत्वपूर्ण समाधानों के लिए एक लचीला, सुरक्षित और सरल विकल्प है।

यह ट्यूटोरियल DigitalOcean Ubuntu 20.04 पर PostgreSQL को स्थापित करने के तरीके के बारे में विस्तृत निर्देश प्रदान करता है। आगे की हलचल के बिना, चलिए शुरू करते हैं!

कुछ ही क्लिक में PostgreSQL को स्वचालित रूप से सेट करना चाहते हैं?

इस बारे में अधिक जानें कि कैसे स्केलग्रिड कुछ ही मिनटों में DigitalOcean पर PostgreSQL को परिनियोजित करने में आपकी मदद कर सकता है, और हमें संपूर्ण सेटअप, कॉन्फ़िगरेशन और इंस्टॉलेशन प्रक्रिया को पूरा करने दें! DigitalOcean पेज पर हमारे PostgreSQL को देखें कि कैसे स्केलग्रिड आपको अपने उत्पाद को विकसित करने पर अधिक ध्यान केंद्रित कर सकता है, और डेटाबेस के प्रबंधन पर कम। या केवल स्केलग्रिड के साथ DigitalOcean पर PostgreSQL के साथ आरंभ करने के तरीके के बारे में हमारी सरल मार्गदर्शिका का पालन करें और हमारे निःशुल्क 30-दिवसीय परीक्षण के साथ अपने लिए प्रयास करें!

PostgreSQL स्थापित करने के लिए पूर्वापेक्षाएँ

इससे पहले कि हम DigitalOcean Ubuntu 20.04 पर PostgreSQL 12 की वास्तविक स्थापना में गोता लगाएँ, आपको यह सुनिश्चित करने की आवश्यकता है कि आपका सिस्टम निम्नलिखित पूर्वापेक्षाओं को पूरा करता है।

  • सर्वर में कम से कम एक बुनियादी UFW फ़ायरवॉल होना चाहिए ताकि यह सुनिश्चित हो सके कि केवल कुछ सेवाओं के कनेक्शन की अनुमति है।
  • सिस्टम को एक नए सर्वर इंस्टेंस के लिए अपडेट किया जाना चाहिए और रिबूट किया जाना चाहिए। ऐसा करने के लिए, निम्न कमांड का उपयोग करें:
    • sudo apt update && sudo apt upgrade –y
    • sudo reboot

Ubuntu 20.04 DigitalOcean पर PostgreSQL इंस्टॉल करना

आप उपयुक्त पैकेज मैनेजर सिस्टम का उपयोग करके Ubuntu 20.04 आधिकारिक/डिफ़ॉल्ट रिपॉजिटरी का उपयोग करके PostgreSQL 12 स्थापित कर सकते हैं। ऐसा करने से पहले, आपको अपने सर्वर के स्थानीय पैकेज इंडेक्स को पहले ही रीफ्रेश कर लेना चाहिए था (ऊपर पूर्वापेक्षाएँ देखें)।

रिपॉजिटरी में विभिन्न पैकेज (तृतीय-पक्ष ऐड-ऑन सहित) शामिल हैं जैसे:

  • पोस्टग्रेस्क्ल-क्लाइंट
  • पोस्टग्रेस्क्ल
  • libpq-dev
  • postgresql-server-dev
  • pgadmin पैकेज

फिर पोस्टग्रेस्क्ल-कॉन्ट्रिब मॉड्यूल के साथ पूरा पोस्टग्रेएसक्यूएल 12 पैकेज स्थापित करें जो अतिरिक्त उपयोगिताओं और कार्यक्षमता प्रदान करता है। इसे निम्न आदेश चलाकर स्थापित किया जा सकता है:

sudo apt install postgresql postgresql-contrib –y

फिर सिस्टम रीबूट पर निम्नलिखित कमांड चलाकर PostgreSQL सेवा शुरू करें:

sudo systemctl start postgresql

सिस्टम स्टार्टअप पर PostgreSQL सेवा को स्वचालित रूप से प्रारंभ करने के लिए, चलाएँ:

sudo systemctl enable postgresql

सत्यापित करें कि PostgreSQL सेवा उम्मीद के मुताबिक चल रही है systemctl status postgresql:

sudo systemctl status postgresql

इसे PostgreSQL सेवा की स्थिति वापस करनी चाहिए और नीचे स्क्रीनशॉट के समान सक्रिय दिखाना चाहिए।

पोस्टग्रेएसक्यूएल इनिशियलाइज़ेशन को कस्टमाइज़ करना

इंस्टालेशन के बाद, initdb कमांड की मदद से एक डेटाबेस क्लस्टर बनाया जा सकता है। initdb कमांड को डेटाबेस उपयोक्ता के भीतर से चलाया जाना चाहिए, न कि रूट उपयोक्ता से। रूट उपयोगकर्ता एक खाली निर्देशिका बना सकता है जिसे पोस्टग्रेज उपयोगकर्ता द्वारा चुना जा सकता है (मालिक कमांड बदलें)। इस निर्देशिका में डेटा एक टेम्पलेट के रूप में होगा, जिसे डिफ़ॉल्ट रूप से सभी डेटाबेस में कॉपी किया जाएगा। पोस्टग्रेज़ उपयोगकर्ता से, निम्नलिखित कमांड को उपयुक्त विकल्प और निर्देशिका नाम के साथ लागू किया जा सकता है।

initdb [option...] [ --pgdata | -D ] directory

किसी दिए गए निर्देशिका में डीबी टेम्पलेट बनाने के लिए initdb कमांड को विभिन्न झंडे के साथ एक प्रमाणित उपयोगकर्ता के रूप में चलाया जा सकता है।

नीचे दिए गए विशिष्ट झंडों की एक सूची है जैसा कि ऊपर स्क्रीनशॉट में देखा गया है:

  • --encoding UTF8 (यह लोकेल पर आधारित कोई भी हो सकता है)।
    • एन्कोडिंग फ़्लैग डेटाबेस टेम्पलेट की एन्कोडिंग सेट करता है। उस टेम्पलेट का उपयोग करके बनाए गए सभी डेटाबेस भी उसी एन्कोडिंग विधि का उपयोग करेंगे जब तक कि अलग से निर्दिष्ट न किया जाए। विभिन्न भाषाओं के लिए कई एन्कोडिंग विधियाँ उपलब्ध हैं।
  • --pgdata test (यह ध्वज डेटाबेस डेटा को संग्रहीत करने के लिए "परीक्षण" नामक एक निर्देशिका बनाता है)।
    • उस निर्देशिका को निर्दिष्ट करता है जहां डेटाबेस क्लस्टर अपना डेटा सहेजता है।
  • -A peer (यह pg_hba.conf फ़ाइल में प्रयुक्त प्रमाणीकरण विधि को निर्दिष्ट करता है)।
    • pg_hba.conf (होस्ट और स्थानीय लाइन) में उपयोग किए जाने वाले स्थानीय उपयोगकर्ताओं के लिए डिफ़ॉल्ट प्रमाणीकरण विधि निर्दिष्ट करता है। initdb गैर-प्रतिकृति के साथ-साथ प्रतिकृति कनेक्शन के लिए निर्दिष्ट प्रमाणीकरण विधि का उपयोग करके pg_hba.conf प्रविष्टियों को पहले से तैयार करेगा।
  • -k (I/O त्रुटियों की जांच के लिए डेटा-चेकसम का उपयोग करता है)
    • I/O प्रणाली के भ्रष्टाचार का पता लगाने के लिए सभी डेटा पृष्ठों पर डेटा-चेकसम निर्दिष्ट करता है। हालांकि, यह डेटाबेस के संसाधन की गति को धीमा कर देता है)।

अपना PostgreSQL डेटाबेस सुरक्षित करना

स्थापना के दौरान, पोस्टग्रेज नाम का एक नया उपयोगकर्ता डिफ़ॉल्ट रूप से स्वचालित रूप से बनाया जाता है। इस उपयोगकर्ता के पास पूरे सिस्टम विशेषाधिकार हैं, इसलिए उपयोगकर्ता खाते को एक मजबूत पासवर्ड से सुरक्षित करना महत्वपूर्ण है।

sudo passwd postgres

अब पोस्टग्रेज यूजर अकाउंट पर स्विच करें। उपयोगकर्ता के पास sudo विशेषाधिकार होने चाहिए।

sudo su – postgres

PostgreSQL संस्करण को चलाकर पुष्टि की जा सकती है

psql -c "SELECT version();"

postgres . का पासवर्ड बदलने के लिए उपयोगकर्ता कमांड का उपयोग करें:

psql -c "ALTER USER postgres WITH PASSWORD 'MyNewPassword'";

नोट:यह पासवर्ड केवल तभी लागू होता है जब postgres उपयोगकर्ता नेटवर्क पर PostgreSQL से जुड़ता है।

Postgres डेटाबेस तक पहुँचने के लिए आप PostgreSQL डेटाबेस में लॉग इन कर सकते हैं:

psql postgres

डिफ़ॉल्ट रूप से, PostgreSQL को डेटाबेस तक पहुँचने के लिए स्थानीय सिस्टम उपयोगकर्ताओं से पासवर्ड प्रमाणीकरण की आवश्यकता नहीं होती है। इसे "पीयर ऑथेंटिकेशन" कहा जाता है। हालांकि, पासवर्ड प्रमाणीकरण को pg_hba.conf . के भीतर से सक्षम किया जा सकता है फ़ाइल।

इसे संपादित करने के लिए pg_hba.conf फ़ाइल, उपयोग करें \q पोस्टग्रेज शेल से बाहर निकलने और लिनक्स शेल में प्रवेश करने का आदेश। Linux शेल के अंदर से, pg_hba.conf संपादित करें फ़ाइल। सुनिश्चित करें कि आप फ़ाइल को संपादित करने से पहले बैकअप ले लें।

sudo cp /etc/postgresql/12/main/pg_hba.conf /etc/postgresql/12/main/pg_hba.conf.bak

फिर नैनो संपादक का उपयोग करके फ़ाइल को संपादित करें,

nano /etc/postgresql/12/main/pg_hba.conf

"केवल यूनिक्स डोमेन सॉकेट कनेक्शन" के अंतर्गत स्थानीय लाइन ढूंढें और METHOD . बदलें peer . से विशेषता करने के लिए md5

नई सेटिंग लागू करने के लिए PostgreSQL सेवा को फिर से लोड करें।

sudo systemctl reload postgresql

कृपया यहां ध्यान दें कि पोस्टग्रेज नाम के दो उपयोगकर्ता हैं; एक डेटाबेस को जोड़ने और एक्सेस करने के लिए लिनक्स उपयोगकर्ता है, और दूसरा डेटाबेस उपयोगकर्ता है जिसका उपयोग डेटाबेस के अंदर प्रशासनिक भूमिका निभाने के लिए किया जाता है।

अपने PostgreSQL डेटाबेस को कॉन्फ़िगर करना

PostgreSQL को postgresql.conf फ़ाइल में आवश्यक पैरामीटर बदलकर सुनने के पते और पोर्ट के लिए मैन्युअल रूप से कॉन्फ़िगर किया जा सकता है।

डिफ़ॉल्ट रूप से, PostgreSQL पोर्ट 5432 का उपयोग किया जाता है और लोकलहोस्ट पर सुनता है। इसे कॉन्फ़िगरेशन फ़ाइल को संपादित करके बदला जा सकता है।

sudo nano /etc/postgresql/12/main/postgresql.conf

कोई भी बदलाव करने के बाद सेवा फिर से शुरू हो जाएगी।

sudo systemctl restart postgresql

PostgreSQL 12 में एक नई भूमिका बनाना

PostgreSQL 12 में प्रमाणीकरण और प्राधिकरण "भूमिका" अवधारणा के माध्यम से होता है। यहां, भूमिका एक लचीला शब्द है जो उपयोगकर्ताओं और समूहों दोनों को संदर्भित करता है।

इस निम्न आदेश का उपयोग करके पोस्टग्रेज़ उपयोगकर्ता में लॉग इन करें:

sudo su postgres

क्रिएटरोल-इंटरएक्टिव कमांड के साथ कमांड लाइन से अंतःक्रियात्मक रूप से नई भूमिकाएँ बनाई जा सकती हैं। यहां, -इंटरएक्टिव ध्वज का उपयोग नई भूमिका के नाम के लिए एक संकेत देगा, और क्या इस भूमिका को सुपरयुसर अनुमतियां सौंपी जानी चाहिए।

पोस्टग्रेस्क्ल शेल के उपयोगकर्ता के बाहर एक नई भूमिका के साथ एक नया उपयोगकर्ता बनाया जा सकता है:

createuser –interactive

नए उपयोगकर्ता कमांड का आउटपुट कुछ इस तरह दिखना चाहिए।

अपने PostgreSQL सर्वर में डेटाबेस बनाना और हटाना

PostgreSQL 12 में, जब एक नई भूमिका बनाई जाती है, तो उसी नाम के साथ एक नया डेटाबेस मौजूद होना चाहिए क्योंकि भूमिका डिफ़ॉल्ट रूप से डेटाबेस से जुड़ने की कोशिश करती है। तो पिछले अनुभाग की तरह, जहां उपयोगकर्ता लियाम बनाया जाता है, उस नाम के साथ एक डेटाबेस निम्न कमांड का उपयोग करके बनाया जा सकता है:

createdb liam

PostgreSQL 12 के भीतर, आवश्यकतानुसार डेटाबेस बनाने के लिए कई पथ हैं:

  • पोस्टग्रेज खाते से लॉग इन करने पर:postgres@server:~$ createdb liam
  • sudo का प्रयोग करें , sudo –u postgres created liam

डेटाबेस को हटाने के लिए, हम उपयोग कर सकते हैं

dropdb liam

नई भूमिका के साथ पोस्टग्रेज प्रॉम्प्ट खोलना

Postgres डेटाबेस और भूमिका के समान नाम वाला एक Linux उपयोगकर्ता पहचान-आधारित प्रमाणीकरण के साथ लॉग इन करने के लिए बनाया जा सकता है।

एक Linux उपयोगकर्ता को कमांड लाइन से टाइप करके बनाया जा सकता है (यदि कोई पहले से मौजूद नहीं है):

sudo adduser noah

उपयोगकर्ता बनने के बाद, इसे निम्न कमांड का उपयोग करके लॉग इन किया जा सकता है;

sudo -u noah psql

वर्तमान डेटाबेस और उपयोगकर्ता जानकारी का उपयोग करके पहुँचा जा सकता है;

\conninfo

PostgreSQL प्रबंधन

टेबल बनाना और हटाना

SQL कमांड CREATE TABLE डेटाबेस के भीतर किसी भी तालिका को बनाने के लिए इस्तेमाल किया जा सकता है। कॉलम की एक सूची और प्रत्येक कॉलम के लिए एक डेटा प्रकार को कमांड में निर्दिष्ट करना होगा।

CREATE TABLE customers (customer_id int, first_name varchar(80), last_name varchar(80));

यह आदेश "ग्राहक" नाम की एक तालिका बनाएगा। पहले कॉलम में पूर्णांक प्रकार की ग्राहक आईडी होगी। दूसरे और तीसरे कॉलम टाइप कैरेक्टर के हैं और इसमें ग्राहकों के पहले और अंतिम नाम शामिल होंगे जिनकी लंबाई अधिकतम 80 वर्ण होगी।

इस नई तालिका को \d . लिखकर देखा जा सकता है ।

तालिका को टाइप करके मिटाया जा सकता है:

DROP TABLE customers;

तालिका में डेटा सम्मिलित करना, चुनना और हटाना

डेटा को PostgreSQL टेबल में पंक्तियों के रूप में जोड़ा जाता है। प्रत्येक पंक्ति डेटा के एक अलग सेट का प्रतिनिधित्व करती है। INSERT INTO कमांड का उपयोग करके डेटा को पंक्ति में डाला जा सकता है। कमांड नाम के बाद "टेबल का नाम" (निम्न उदाहरण में, ग्राहक), कीवर्ड VALUES, अल्पविराम द्वारा अलग किए गए मानों की एक सूची है।

INSERT INTO customers VALUES (1, 'Owen', 'Buyer');

INSERT INTO customers VALUES (2, 'Luke', 'Seller');

तालिका की सामग्री को SELECT कमांड का उपयोग करके देखा जा सकता है।

SELECT * FROM customers;

DELETE . का उपयोग करके एक पंक्ति को हटाया जा सकता है आज्ञा। WHERE सशर्त रूप से पंक्तियों का चयन करने के लिए कीवर्ड का उपयोग किया जाता है।

DELETE FROM customers WHERE last_name = 'Seller';

सभी पंक्तियों को हटाने के लिए, टाइप करें:

SELECT * FROM customers;

तालिका से कॉलम जोड़ना और छोड़ना

PostgreSQL 12 मौजूदा तालिकाओं में आसानी से कॉलम जोड़ने या हटाने की क्षमता प्रदान करता है।

ALTER TABLE कमांड का प्रयोग ADD . के साथ किया जाता है किसी मौजूदा तालिका में कॉलम जोड़ने के लिए कीवर्ड। तालिका में मौजूदा पंक्तियों के लिए यह फ़ील्ड खाली सेट है।

ALTER TABLE customers ADD branch_id int;

DROP . के साथ इसी कमांड का प्रयोग किया जाता है तालिका से निर्दिष्ट कॉलम को हटाने के लिए कीवर्ड।

ALTER TABLE customers DROP first_name;

तालिका में डेटा अपडेट करना

एक टेबल के अंदर रिकॉर्ड जोड़ने और हटाने के अलावा, हम उन्हें संशोधित भी कर सकते हैं। यह UPDATE . का उपयोग करके किया जा सकता है आज्ञा। हमें उन स्तंभों को निर्दिष्ट करने की आवश्यकता है जिन्हें नए मानों के साथ संपादित करने की आवश्यकता है।

UPDATE customers SET last_name= 'Buyer' WHERE customer_id = '1';

उत्पादन पर्यावरण के लिए विचार

PostgreSQL 12 को उत्पादन वातावरण में सुरक्षित रूप से उपयोग किया जा सकता है। यह डेटाबेस इतना स्थिर है कि इसे बड़े पैमाने पर लागू करने में कोई समस्या नहीं होनी चाहिए। अधिक जानकारी के लिए, कृपया हमारे पिछले लेख को यहां देखें।

निष्कर्ष

इस ट्यूटोरियल ने आपको दिखाया कि DigitalOcean पर चलने वाले Ubuntu 20.04 सर्वर पर PostgreSQL 12 कैसे सेट करें। PostgreSQL 12 कई नई और उन्नत सुविधाओं के साथ एक जटिल अनुप्रयोग है, जैसे मानक बी-ट्री इंडेक्स के बेहतर अंतरिक्ष प्रबंधन, और समवर्ती इंडेक्स पुनर्निर्माण और इंडेक्स निर्माण को कवर करने के लिए समर्थन। संस्करण 12 इनलाइन विद क्वेश्चन और आईसीयू-प्रदान किए गए कॉलेशन का भी समर्थन करता है, विभाजन में सुधार करता है, और टेबल स्टोरेज के लिए विभिन्न तरीकों को बनाने और उपयोग करने के लिए एक प्लग करने योग्य टेबल स्टोरेज इंटरफेस प्रदान करता है।

अब जब आप PostgreSQL सर्वर को स्थापित करने और उसका उपयोग करने की मूल बातें जानते हैं, तो क्यों न एक प्रबंधित विकल्प का प्रयास करें? स्केलग्रिड जैसी प्रबंधित सेवा के साथ, आप एक बटन के क्लिक में संपूर्ण सेटअप, स्थापना और कॉन्फ़िगरेशन प्रक्रिया को पूरा कर सकते हैं। आज ही अपना 30-दिवसीय परीक्षण शुरू करें और स्वयं देखें! किसी क्रेडिट कार्ड की आवश्यकता नहीं है और आप कुछ ही मिनटों में अपना पहला डेटाबेस सेट कर सकते हैं।

हमने यहां स्थापना मूल बातें शामिल की हैं, और सामान्य डेटाबेस प्रशासन के लिए कुछ निर्देश भी प्रदान किए हैं। हमें उम्मीद है कि आपको यह मार्गदर्शिका उपयोगी लगी होगी।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. मैं कैसे (या मैं कर सकता हूँ) एकाधिक स्तंभों पर DISTINCT का चयन करें?

  2. सम्मिलित नहीं किया जा सकता:त्रुटि:सरणी मान { या आयाम जानकारी . से प्रारंभ होना चाहिए

  3. त्रुटि:psycopg2.extensions नाम का कोई मॉड्यूल नहीं है

  4. PostgreSQL 11 में नई संग्रहीत कार्यविधियों का अवलोकन

  5. PostgreSQL डेटाबेस में सभी ट्रिगर्स को सूचीबद्ध करने के 2 तरीके