sql >> Databasteknik >  >> RDS >> PostgreSQL

Hur man installerar PostgreSQL 12 på Ubuntu 20.04 DigitalOcean

PostgreSQL-funktioner och användningsfall

PostgreSQL är ett objektrelationellt databashanteringssystem (DBMS) med öppen källkod. Det är ett avancerat databashanterings- och analyssystem som huvudsakligen används för e-handelsplattformar, betalningstransaktioner och olika datalagerlösningar. Den har funnits i över 30 år och uppdateras regelbundet varje år, stöder olika SQL-funktioner som triggers, användardefinierade typer och funktioner, underfrågor, etc.

PostgreSQL är en av världens mest avancerade databaser med öppen källkod. Den är lämplig för flera produktions- och utvecklingsanvändningsfall. Det ger många fördelar såsom förbättrad partitionering och frågeprestanda (särskilt över stora datamängder), B-trädförbättringar för optimalt utrymmesutnyttjande, multi-column most common value (MCV)-statistik, vanliga tabelluttryck med frågeinfogning och kontrollsummakontroll.

Några ord om Ubuntu 20.04 på DigitalOcean

Ubuntu är ett populärt skrivbordsoperativsystem med öppen källkod. Ubuntu 20.04 innehåller många banbrytande funktioner, såsom ett verktyg för att hantera ZFS-ögonblicksbilder, en stor kärna och säkerhetsförbättringar. DigitalOcean molnplattform ger en robust infrastruktur och global tillgänglighet för att utveckla, hantera och skala applikationer i molnet. Med sina dator-, lagrings-, databaser och nätverksprodukter kan utvecklare bygga webb- och mobilapplikationer, streamingtjänster, spel, SaaS-lösningar och mer. DigitalOcean erbjuder funktioner som delat privat nätverk, ettklicks DevOps-verktyg och SSD-hårddiskar, och är ett flexibelt, säkert och enkelt val för affärskritiska lösningar.

Denna handledning ger detaljerade instruktioner om hur du installerar PostgreSQL på DigitalOcean Ubuntu 20.04. Utan vidare, låt oss komma igång!

Vill du ställa in PostgreSQL automatiskt med bara några klick?

Lär dig mer om hur ScaleGrid kan hjälpa dig att distribuera PostgreSQL på DigitalOcean på några minuter, och låt oss slutföra hela installationen, konfigurationen och installationsprocessen! Kolla in vår PostgreSQL på DigitalOcean-sida för att se hur ScaleGrid kan låta dig fokusera mer på att utveckla din produkt och mindre på att hantera databaser. Eller följ bara vår enkla guide om hur du kommer igång med PostgreSQL på DigitalOcean med ScaleGrid och prova själv med vår kostnadsfria 30-dagars provperiod!

Förutsättningar för att installera PostgreSQL

Innan vi dyker in i själva installationen av PostgreSQL 12 på DigitalOcean Ubuntu 20.04 måste du se till att ditt system uppfyller följande förutsättningar.

  • Servern bör ha åtminstone en grundläggande UFW-brandvägg för att säkerställa att endast anslutningar till vissa tjänster är tillåtna.
  • Systemet bör uppdateras för en ny serverinstans och startas om. För att göra det, använd följande kommandon:
    • sudo apt update && sudo apt upgrade –y
    • sudo reboot

Installera PostgreSQL på Ubuntu 20.04 DigitalOcean

Du kan installera PostgreSQL 12 med Ubuntu 20.04 officiella/standardförråd med hjälp av apt package manager-systemet. Innan du gör detta bör du redan ha uppdaterat serverns lokala paketindex (se förutsättningarna ovan).

Förvaret innehåller olika paket (inklusive tillägg från tredje part) som:

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

Installera sedan hela PostgreSQL 12-paketet tillsammans med postgresql-contrib-modulen som tillhandahåller ytterligare verktyg och funktionalitet. Detta kan installeras genom att köra följande kommando:

sudo apt install postgresql postgresql-contrib –y

Starta sedan PostgreSQL-tjänsten vid omstart av systemet genom att köra följande kommando:

sudo systemctl start postgresql

För att automatiskt starta PostgreSQL-tjänsten vid systemstart, kör:

sudo systemctl enable postgresql

Verifiera att PostgreSQL-tjänsten körs som förväntat genom att köra systemctl status postgresql:

sudo systemctl status postgresql

Detta bör returnera statusen för PostgreSQL-tjänsten och bör visa aktivt, liknande skärmdumpen nedan.

Anpassa PostgreSQL-initiering

Efter installationen kan ett databaskluster skapas med hjälp av kommandot initdb. Kommandot initdb måste köras inifrån databasanvändaren och inte från rotanvändaren. Rotanvändaren kan skapa en tom katalog som kan väljas (kommando ändra ägare) av postgres-användaren. Denna katalog kommer att innehålla data som en mall, som kopieras till alla databaser som standard. Från postgres-användaren kan följande kommando anropas med lämpligt alternativ och katalognamn.

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

Kommandot initdb kan köras som en autentiserad användare med de olika flaggorna för att skapa en db-mall i en given katalog.

Nedan finns en lista över specifika flaggor som ses i skärmdumpen ovan:

  • --encoding UTF8 (det kan vara vilket som helst baserat på språket).
    • Kodningsflaggan ställer in kodningen för databasmallen. Alla databaser som skapats med den mallen kommer också att använda samma kodningsmetod om det inte anges separat. Det finns många kodningsmetoder tillgängliga för olika språk.
  • --pgdata test (denna flagga skapar en katalog som heter "test" för att lagra databasdata).
    • Anger katalogen där databasklustret sparar sina data.
  • -A peer (detta anger den autentiseringsmetod som används i filen pg_hba.conf).
    • Anger standardautentiseringsmetoden för lokala användare som används i pg_hba.conf (värd och lokala linjer). initdb kommer att förfylla pg_hba.conf-poster med den angivna autentiseringsmetoden för såväl icke-replikering som replikeringsanslutningar.
  • -k (använder data-checksum för att kontrollera I/O-fel)
    • Anger datakontrollsumman på alla datasidor för att upptäcka korruptionen i I/O-systemet. Detta saktar dock ned databasbearbetningshastigheten).

Säkra din PostgreSQL-databas

Under installationen skapas en ny användare med namnet postgres automatiskt som standard. Den här användaren har fullständiga systembehörigheter, så det är viktigt att säkra användarkontot med ett starkt lösenord.

sudo passwd postgres

Byt nu till postgres användarkonto. Användaren bör ha sudo-privilegier.

sudo su – postgres

PostgreSQL-versionen kan bekräftas genom att köra

psql -c "SELECT version();"

För att ändra lösenordet för postgres användaranvändningskommando:

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

Obs:Detta lösenord gäller endast när postgres användare ansluter till PostgreSQL över nätverket.

För att komma åt Postgres-databasen kan du logga in på PostgreSQL-databasen med:

psql postgres

Som standard kräver PostgreSQL inte lösenordsautentisering från lokala systemanvändare för att komma åt databasen. Detta kallas "peer-autentisering". Lösenordsautentisering kan dock aktiveras från pg_hba.conf fil.

För att redigera denna pg_hba.conf fil, använd \q kommandot för att avsluta postgres-skalet och gå in i Linux-skalet. Redigera pg_hba.conf inifrån Linux-skalet fil. Se till att du tar en säkerhetskopia innan du redigerar filen.

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

Redigera sedan filen med nanoredigerare,

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

Hitta den lokala raden under "Endast Unix-domänuttagsanslutningar" och ändra METHOD attribut från peer till md5 .

Ladda om PostgreSQL-tjänsten för att tillämpa de nya inställningarna.

sudo systemctl reload postgresql

Observera här att det finns två användare med namnet postgres; en är Linux-användaren för att ansluta och komma åt databasen, och den andra är databasanvändaren som används för att utföra administrativa roller i databasen.

Konfigurera din PostgreSQL-databas

PostgreSQL kan konfigureras manuellt för lyssningsadresser och portar genom att ändra de nödvändiga parametrarna i postgresql.conf-filen.

Som standard används PostgreSQL-porten 5432 och lyssnar på localhost. Detta kan ändras genom att redigera konfigurationsfilen.

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

Tjänsten kommer att startas om efter att du har gjort några ändringar.

sudo systemctl restart postgresql

Skapa en ny roll i PostgreSQL 12

Autentisering och auktorisering i PostgreSQL 12 sker via "roll"-konceptet. Här är roll en flexibel term som syftar på både användare och grupper.

Logga in på postgres-användaren genom att använda följande kommando:

sudo su postgres

Nya roller kan skapas interaktivt från kommandoraden med kommandot createrole –interactive. Här kommer användningen av –interactive-flaggan att skapa en prompt för namnet på den nya rollen, och om denna roll ska tilldelas superanvändarbehörigheter.

En ny användare kan skapas med en ny roll utanför användarens postgresql-skal som:

createuser –interactive

Utdata från det nya användarkommandot bör se ut ungefär så här.

Skapa och ta bort en databas i din PostgreSQL-server

I PostgreSQL 12, när en ny roll skapas, måste en ny databas med samma namn finnas eftersom rollen försöker ansluta till databasen som standard. Så som i föregående avsnitt, där användaren liam skapas, kan en databas med det namnet skapas genom att använda följande kommando:

createdb liam

Inom PostgreSQL 12 finns det flera sökvägar för att skapa databaser efter behov:

  • När inloggad från postgres-kontot:postgres@server:~$ createdb liam
  • Använd sudo , sudo –u postgres created liam

För att radera databasen kan vi använda

dropdb liam

Öppna en Postgres-prompt med den nya rollen

En Linux-användare med samma namn som Postgres-databasen och rollen kan skapas för att logga in med ident-baserad autentisering.

En Linux-användare kan skapas (om en sådan inte redan finns) från kommandoraden genom att skriva:

sudo adduser noah

Efter att användaren har skapats kan den loggas in med följande kommando;

sudo -u noah psql

Den aktuella databasen och användarinformationen kan nås genom att använda;

\conninfo

PostgreSQL-hantering

Skapa och ta bort tabeller

SQL-kommandot CREATE TABLE kan användas för att skapa vilken tabell som helst i en databas. En lista med kolumner och en datatyp för varje kolumn måste anges i kommandot.

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

Detta kommando skapar en tabell med namnet "kunder". Den första kolumnen innehåller kund-ID av typen heltal. Den andra och tredje kolumnen är av typkaraktär och kommer att innehålla kundernas för- och efternamn med en maximal längd på 80 tecken.

Den här nya tabellen kan ses genom att skriva \d .

Tabellen kan raderas genom att skriva:

DROP TABLE customers;

Infoga, välja och ta bort data i en tabell

Data läggs till i PostgreSQL-tabellerna i form av rader. Varje rad representerar en separat uppsättning data. Data kan infogas i raden genom att använda kommandot INSERT INTO. Kommandots namn följs av "tabellnamnet" (i följande exempel, kunder), nyckelordet VALUES, en lista med värden separerade med kommatecken.

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

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

Innehållet i tabellen kan ses genom att använda kommandot SELECT.

SELECT * FROM customers;

En rad kan raderas genom att använda DELETE kommando. WHERE nyckelord används för att välja raderna villkorligt.

DELETE FROM customers WHERE last_name = 'Seller';

För att radera alla rader, skriv:

SELECT * FROM customers;

Lägga till och släppa kolumner från en tabell

PostgreSQL 12 ger möjlighet att enkelt lägga till eller ta bort kolumner från befintliga tabeller.

ALTER TABLE kommandot används tillsammans med ADD nyckelord för att lägga till en kolumn i en befintlig tabell. Detta fält är tomt för de befintliga raderna i tabellen.

ALTER TABLE customers ADD branch_id int;

Samma kommando används med DROP nyckelord för att ta bort den angivna kolumnen från tabellen.

ALTER TABLE customers DROP first_name;

Uppdatera data i en tabell

Förutom att lägga till och ta bort poster i en tabell kan vi också ändra dem. Detta kan göras genom att använda UPDATE kommando. Vi måste specificera kolumnerna som behöver redigeras med de nya värdena.

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

Överväganden för produktionsmiljön

PostgreSQL 12 kan användas säkert i en produktionsmiljö. Denna databas är så stabil att man inte bör ha några problem med att implementera den i stor skala. För mer information, se vår tidigare artikel här.

Slutsats

Denna handledning visade dig hur du ställer in PostgreSQL 12 på en Ubuntu 20.04-server som körs på DigitalOcean. PostgreSQL 12 är en komplex applikation med många nya och avancerade funktioner, såsom förbättrad utrymmeshantering av standard B-trädindex och stöd för samtidig indexuppbyggnad och indexskapande. Version 12 stöder också inlined WITH-frågor och ICU-tillhandahållna kollationer, förbättrar partitionering och tillhandahåller ett pluggbart tabelllagringsgränssnitt för att skapa och använda olika metoder för tabelllagring.

Nu när du känner till grunderna för att installera och använda en PostgreSQL-server, varför inte prova ett hanterat alternativ? Med en hanterad tjänst som ScaleGrid kan du slutföra hela installations-, installations- och konfigurationsprocessen med en knapptryckning. Starta din kostnadsfria 30-dagars provperiod idag och se själv! Inget kreditkort krävs och du kan skapa din allra första databas på några minuter.

Vi har täckt grunderna för installationen här och även tillhandahållit några instruktioner för allmän databasadministration. Vi hoppas att du tyckte att den här guiden var användbar.


  1. Ska det finnas en SQLiteOpenHelper för varje tabell i databasen?

  2. Hur man installerar MySQL 8 på Ubuntu 20.04 LTS

  3. Hur man listar alla vyer i en PostgreSQL-databas

  4. Hur man distribuerar MariaDB Cluster 10.5 för hög tillgänglighet