sql >> Database teknologi >  >> RDS >> PostgreSQL

Sådan installeres PostgreSQL 12 på Ubuntu 20.04 DigitalOcean

PostgreSQL-funktioner og anvendelsestilfælde

PostgreSQL er et open source-objektrelationelt databasestyringssystem (DBMS). Det er et avanceret databasestyrings- og analysesystem, der hovedsageligt bruges til e-handelsplatforme, betalingstransaktioner og forskellige data warehousing-løsninger. Det har eksisteret i over 30 år og opdateres regelmæssigt hvert år, understøtter forskellige SQL-funktioner som triggere, brugerdefinerede typer og funktioner, underforespørgsler osv.

PostgreSQL er en af ​​verdens mest avancerede open source-databaser. Den er velegnet til adskillige produktions- og udviklingsanvendelser. Det giver adskillige fordele, såsom forbedret partitionering og forespørgselsydeevne (især over store datasæt), B-træforbedringer for optimal pladsudnyttelse, statistik over den mest almindelige værdi (MCV) med flere kolonner, almindelige tabeludtryk med forespørgselsinlining og kontrolsumkontrol.

Et par ord om Ubuntu 20.04 på DigitalOcean

Ubuntu er et populært open source desktop-operativsystem. Ubuntu 20.04 indeholder adskillige avancerede funktioner, såsom et værktøj til at administrere ZFS-øjebliksbilleder, et stort kernebump og sikkerhedsforbedringer. DigitalOcean cloud-platformen giver en robust infrastruktur og global tilgængelighed til at udvikle, administrere og skalere applikationer i skyen. Med sine computer-, lagrings-, databaser og netværksprodukter kan udviklere bygge web- og mobilapplikationer, streamingtjenester, spil, SaaS-løsninger og mere. DigitalOcean tilbyder funktioner som delt privat netværk, et-klik DevOps-værktøjer og SSD-harddiske og er et fleksibelt, sikkert og enkelt valg til missionskritiske løsninger.

Denne vejledning giver detaljerede instruktioner om, hvordan du installerer PostgreSQL på DigitalOcean Ubuntu 20.04. Lad os uden videre komme i gang!

Vil du konfigurere PostgreSQL automatisk med nogle få klik?

Lær mere om, hvordan ScaleGrid kan hjælpe dig med at implementere PostgreSQL på DigitalOcean i løbet af få minutter, og lad os fuldføre hele opsætningen, konfigurationen og installationsprocessen! Tjek vores PostgreSQL på DigitalOcean-side for at se, hvordan ScaleGrid kan lade dig fokusere mere på at udvikle dit produkt og mindre på at administrere databaser. Eller følg bare vores enkle guide til, hvordan du kommer i gang med PostgreSQL på DigitalOcean med ScaleGrid, og prøv selv med vores gratis 30-dages prøveperiode!

Forudsætninger for at installere PostgreSQL

Før vi dykker ned i selve installationen af ​​PostgreSQL 12 på DigitalOcean Ubuntu 20.04, skal du sikre dig, at dit system opfylder følgende forudsætninger.

  • Serveren skal have mindst en grundlæggende UFW-firewall for at sikre, at kun forbindelser til bestemte tjenester er tilladt.
  • Systemet skal opdateres til en ny serverforekomst og genstartes. For at gøre det skal du bruge følgende kommandoer:
    • sudo apt update && sudo apt upgrade –y
    • sudo reboot

Installation af PostgreSQL på Ubuntu 20.04 DigitalOcean

Du kan installere PostgreSQL 12 ved hjælp af Ubuntu 20.04 officielle/default repositories ved hjælp af apt-pakkehåndteringssystemet. Før du gør dette, bør du allerede have opdateret din servers lokale pakkeindeks (se forudsætninger ovenfor).

Lagret indeholder forskellige pakker (inklusive 3. parts tilføjelser), såsom:

  • postgresql-klient
  • postgresql
  • libpq-dev
  • postgresql-server-dev
  • pgadmin-pakker

Installer derefter den komplette PostgreSQL 12-pakke sammen med postgresql-contrib-modulet, der giver yderligere hjælpeprogrammer og funktionalitet. Dette kan installeres ved at køre følgende kommando:

sudo apt install postgresql postgresql-contrib –y

Start derefter PostgreSQL-tjenesten ved systemgenstart ved at køre følgende kommando:

sudo systemctl start postgresql

For automatisk at starte PostgreSQL-tjenesten ved systemstart skal du køre:

sudo systemctl enable postgresql

Bekræft, at PostgreSQL-tjenesten kører som forventet ved at køre systemctl status postgresql:

sudo systemctl status postgresql

Dette skulle returnere status for PostgreSQL-tjenesten og skulle vise aktiv, svarende til skærmbilledet nedenfor.

Tilpasning af PostgreSQL-initialisering

Efter installationen kan en databaseklynge oprettes ved hjælp af kommandoen initdb. Kommandoen initdb skal køres fra databasebrugeren og ikke fra root-brugeren. Rodbrugeren kan oprette en tom mappe, som kan vælges (skift ejerkommando) af postgres-brugeren. Denne mappe vil indeholde dataene som en skabelon, som som standard vil blive kopieret til alle databaser. Fra postgres-brugeren kan følgende kommando fremkaldes med den passende indstilling og mappenavn.

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

Kommandoen initdb kan køres som en autentificeret bruger med de forskellige flag for at skabe en db-skabelon i en given mappe.

Nedenfor er en liste over specifikke flag som ses på skærmbilledet ovenfor:

  • --encoding UTF8 (det kan være en hvilken som helst baseret på lokaliteten).
    • Kodningsflag indstiller kodningen af ​​databaseskabelonen. Alle databaser, der er oprettet ved hjælp af denne skabelon, vil også bruge den samme indkodningsmetode, medmindre det er angivet separat. Der er mange kodningsmetoder tilgængelige for forskellige sprog.
  • --pgdata test (dette flag opretter en mappe med navnet "test" for at gemme databasedataene).
    • Specificerer den mappe, hvor databaseklyngen gemmer sine data.
  • -A peer (dette angiver den godkendelsesmetode, der bruges i filen pg_hba.conf).
    • Specificerer standardgodkendelsesmetoden for lokale brugere, der bruges i pg_hba.conf (værts- og lokale linjer). initdb vil på forhånd udfylde pg_hba.conf-poster ved hjælp af den angivne godkendelsesmetode for ikke-replikering samt replikeringsforbindelser.
  • -k (bruger data-checksum til at kontrollere I/O-fejl)
    • Specificerer datakontrolsummen på alle datasiderne for at opdage korruptionen af ​​I/O-systemet. Dette sænker dog databasebehandlingshastigheden).

Sikring af din PostgreSQL-database

Under installationen oprettes en ny bruger ved navn postgres automatisk som standard. Denne bruger har fulde systemrettigheder, så det er vigtigt at sikre brugerkontoen med en stærk adgangskode.

sudo passwd postgres

Skift nu til postgres-brugerkontoen. Brugeren skal have sudo-rettigheder.

sudo su – postgres

PostgreSQL-versionen kan bekræftes ved at køre

psql -c "SELECT version();"

For at ændre adgangskoden til postgres brugerbrug kommando:

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

Bemærk:Denne adgangskode gælder kun, når postgres brugeren opretter forbindelse til PostgreSQL over netværket.

For at få adgang til Postgres-databasen kan du logge ind på PostgreSQL-databasen med:

psql postgres

Som standard kræver PostgreSQL ikke adgangskodegodkendelse fra lokale systembrugere for at få adgang til databasen. Dette kaldes "peer-godkendelse". Adgangskodegodkendelse kan dog aktiveres fra pg_hba.conf fil.

For at redigere denne pg_hba.conf fil, brug \q kommando for at afslutte postgres-skallen og gå ind i Linux-skallen. Rediger pg_hba.conf inde fra Linux-skallen fil. Sørg for at tage en sikkerhedskopi, før du redigerer filen.

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

Rediger derefter filen ved hjælp af nano-editor,

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

Find den lokale linje under "Kun Unix-domæne-socket-forbindelser", og skift METHOD attribut fra peer til md5 .

Genindlæs PostgreSQL-tjenesten for at anvende de nye indstillinger.

sudo systemctl reload postgresql

Bemærk venligst her, at der er to brugere med navnet postgres; den ene er Linux-brugeren til at forbinde og få adgang til databasen, og den anden er databasebrugeren, der bruges til at udføre administrative roller i databasen.

Konfiguration af din PostgreSQL-database

PostgreSQL kan konfigureres manuelt til lytteadresser og porte ved at ændre de nødvendige parametre i postgresql.conf-filen.

Som standard bruges PostgreSQL-porten 5432 og lytter på localhost. Dette kan ændres ved at redigere konfigurationsfilen.

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

Tjenesten genstartes efter ændringer.

sudo systemctl restart postgresql

Oprettelse af en ny rolle i PostgreSQL 12

Autentificering og autorisation i PostgreSQL 12 sker via "rolle"-konceptet. Her er rolle et fleksibelt begreb, der refererer til både brugere og grupper.

Log ind på postgres-brugeren ved at bruge følgende kommando:

sudo su postgres

Nye roller kan oprettes interaktivt fra kommandolinjen med kommandoen createrole –interactive. Her vil brugen af ​​det interaktive flag skabe en prompt om navnet på den nye rolle, og om denne rolle skal tildeles superbrugertilladelser.

En ny bruger kan oprettes med en ny rolle uden for brugerens postgresql shell som:

createuser –interactive

Outputtet af den nye brugerkommando skulle se nogenlunde sådan ud.

Oprettelse og sletning af en database i din PostgreSQL-server

I PostgreSQL 12, når en ny rolle oprettes, skal der eksistere en ny database med samme navn, da rollen som standard forsøger at oprette forbindelse til databasen. Så som i det foregående afsnit, hvor brugeren liam er oprettet, kan en database med det navn oprettes ved at bruge følgende kommando:

createdb liam

Inden for PostgreSQL 12 er der flere stier til at oprette databaser efter behov:

  • Når du er logget ind fra postgres-kontoen:postgres@server:~$ createdb liam
  • Brug sudo , sudo –u postgres created liam

For at slette databasen kan vi bruge

dropdb liam

Åbning af en Postgres-prompt med den nye rolle

En Linux-bruger med samme navn som Postgres-databasen og rollen kan oprettes til at logge på med ident-baseret godkendelse.

En Linux-bruger kan oprettes (hvis en ikke allerede eksisterer) fra kommandolinjen ved at skrive:

sudo adduser noah

Efter at brugeren er oprettet, kan den logges på ved at bruge følgende kommando;

sudo -u noah psql

Den aktuelle database og brugerinformation kan tilgås ved at bruge;

\conninfo

PostgreSQL Management

Oprettelse og sletning af tabeller

SQL-kommandoen CREATE TABLE kan bruges til at oprette en hvilken som helst tabel i en database. En liste over kolonner og en datatype for hver kolonne skal angives i kommandoen.

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

Denne kommando vil oprette en tabel med navnet "kunder". Den første kolonne vil indeholde kunde-id'et af typen heltal. Den anden og tredje kolonne er af typen karakter og vil indeholde for- og efternavne på kunderne med en maksimal længde på 80 tegn.

Denne nye tabel kan ses ved at skrive \d .

Tabellen kan slettes ved at skrive:

DROP TABLE customers;

Indsættelse, valg og sletning af data i en tabel

Data tilføjes i PostgreSQL-tabellerne i form af rækker. Hver række repræsenterer et separat sæt data. Data kan indsættes i rækken ved at bruge kommandoen INSERT INTO. Kommandonavnet efterfølges af "tabelnavnet" (i følgende eksempel kunder), søgeordet VALUES, en liste over værdier adskilt af et komma.

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

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

Indholdet af tabellen kan ses ved at bruge SELECT-kommandoen.

SELECT * FROM customers;

En række kan slettes ved at bruge DELETE kommando. WHERE nøgleordet bruges til at vælge rækkerne betinget.

DELETE FROM customers WHERE last_name = 'Seller';

For at slette alle rækkerne skal du skrive:

SELECT * FROM customers;

Tilføjelse og sletning af kolonner fra en tabel

PostgreSQL 12 giver mulighed for nemt at tilføje eller slette kolonner fra de eksisterende tabeller.

ALTER TABLE kommandoen bruges sammen med ADD nøgleord for at tilføje en kolonne til en eksisterende tabel. Dette felt er sat tomt for de eksisterende rækker i tabellen.

ALTER TABLE customers ADD branch_id int;

Den samme kommando bruges med DROP nøgleord for at slette den angivne kolonne fra tabellen.

ALTER TABLE customers DROP first_name;

Opdatering af data i en tabel

Udover at tilføje og slette poster i en tabel, kan vi også ændre dem. Dette kan gøres ved at bruge UPDATE kommando. Vi skal angive de kolonner, der skal redigeres med de nye værdier.

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

Overvejelser for produktionsmiljø

PostgreSQL 12 kan bruges sikkert i et produktionsmiljø. Denne database er så stabil, at man ikke burde have problemer med at implementere den i stor skala. For mere information, se venligst vores tidligere artikel her.

Konklusion

Denne vejledning viste dig, hvordan du konfigurerer PostgreSQL 12 på en Ubuntu 20.04-server, der kører på DigitalOcean. PostgreSQL 12 er en kompleks applikation med mange nye og avancerede funktioner, såsom forbedret pladsstyring af standard B-tree indekser og understøttelse af samtidig indeksgenopbygning og dækning af indeksoprettelse. Version 12 understøtter også inlined WITH-forespørgsler og ICU-leverede sorteringer, forbedrer partitionering og giver en pluggbar tabellagringsgrænseflade til at oprette og bruge forskellige metoder til tabellagring.

Nu hvor du kender det grundlæggende i opsætning og brug af en PostgreSQL-server, hvorfor så ikke prøve et administreret alternativ? Med en administreret tjeneste som ScaleGrid kan du fuldføre hele opsætnings-, installations- og konfigurationsprocessen med et klik på en knap. Start din gratis 30-dages prøveperiode i dag, og se selv! Intet kreditkort er påkrævet, og du kan oprette din allerførste database på få minutter.

Vi har dækket de grundlæggende installationer her, og vi har også givet nogle instruktioner til generel databaseadministration. Vi håber, du fandt denne vejledning nyttig.


  1. Hvad gør en SQL-sætning sargerbar?

  2. Jeg kan ikke starte SQL Server-browseren

  3. Bucketizing data og klokkeslæt

  4. Sådan opgraderes MySQL 5.5 til 5.6 på Ubuntu 14.04