sql >> Database >  >> RDS >> PostgreSQL

Hoe PostgreSQL 12 op Ubuntu 20.04 DigitalOcean te installeren

PostgreSQL-functies en gebruiksscenario's

PostgreSQL is een open-source Object-relationeel Database Management Systeem (DBMS). Het is een geavanceerd databasebeheer- en analysesysteem dat voornamelijk wordt gebruikt voor e-commerceplatforms, betalingstransacties en verschillende datawarehousing-oplossingen. Het bestaat al meer dan 30 jaar en wordt elk jaar regelmatig bijgewerkt, ondersteunt verschillende SQL-functies zoals triggers, door de gebruiker gedefinieerde typen en functies, subquery's, enz.

PostgreSQL is een van 's werelds meest geavanceerde open source databases. Het is geschikt voor verschillende gebruiksscenario's voor productie en ontwikkeling. Het biedt tal van voordelen, zoals verbeterde partitionering en queryprestaties (vooral bij grote datasets), B-tree-verbeteringen voor optimaal gebruik van de ruimte, statistieken met meerdere kolommen (meest voorkomende waarden), algemene tabelexpressies met query-inlining en controlesomcontrole.

Een paar woorden over Ubuntu 20.04 op DigitalOcean

Ubuntu is een populair open-source desktopbesturingssysteem. Ubuntu 20.04 bevat tal van geavanceerde functies, zoals een tool om ZFS-snapshots te beheren, een grote kernelbump en beveiligingsverbeteringen. Het DigitalOcean-cloudplatform biedt een robuuste infrastructuur en wereldwijde beschikbaarheid voor het ontwikkelen, beheren en schalen van applicaties in de cloud. Met zijn compute-, storage-, database- en netwerkproducten kunnen ontwikkelaars web- en mobiele applicaties, streamingdiensten, games, SaaS-oplossingen en meer bouwen. Met functies zoals gedeeld privénetwerk, DevOps-tools met één klik en SSD-harde schijven, is DigitalOcean een flexibele, veilige en eenvoudige keuze voor bedrijfskritieke oplossingen.

Deze tutorial biedt gedetailleerde instructies voor het installeren van PostgreSQL op DigitalOcean Ubuntu 20.04. Laten we zonder verder oponthoud beginnen!

Wilt u PostgreSQL automatisch instellen in slechts een paar klikken?

Lees meer over hoe ScaleGrid u kan helpen PostgreSQL binnen enkele minuten op DigitalOcean te implementeren, en laat ons het hele installatie-, configuratie- en installatieproces voltooien! Bekijk onze PostgreSQL op DigitalOcean-pagina om te zien hoe u zich met ScaleGrid meer kunt concentreren op het ontwikkelen van uw product en minder op het beheren van databases. Of volg gewoon onze eenvoudige handleiding om aan de slag te gaan met PostgreSQL op DigitalOcean met ScaleGrid en probeer het zelf met onze gratis proefperiode van 30 dagen!

Vereisten om PostgreSQL te installeren

Voordat we ingaan op de daadwerkelijke installatie van PostgreSQL 12 op DigitalOcean Ubuntu 20.04, moet u ervoor zorgen dat uw systeem aan de volgende vereisten voldoet.

  • De server moet minimaal een basis UFW-firewall hebben om ervoor te zorgen dat alleen verbindingen met bepaalde services zijn toegestaan.
  • Het systeem moet worden bijgewerkt voor een nieuwe serverinstantie en opnieuw worden opgestart. Gebruik hiervoor de volgende commando's:
    • sudo apt update && sudo apt upgrade –y
    • sudo reboot

PostgreSQL installeren op Ubuntu 20.04 DigitalOcean

U kunt PostgreSQL 12 installeren met Ubuntu 20.04 officiële/standaard repositories met behulp van het apt-pakketbeheersysteem. Voordat u dit doet, zou u de lokale pakketindex van uw server al moeten hebben vernieuwd (zie de vereisten hierboven).

De repository bevat verschillende pakketten (inclusief add-ons van derden), zoals:

  • postgresql-client
  • postgresql
  • libpq-dev
  • postgresql-server-dev
  • pgadmin-pakketten

Installeer vervolgens het volledige PostgreSQL 12-pakket samen met de postgresql-contrib-module die extra hulpprogramma's en functionaliteit biedt. Dit kan worden geïnstalleerd door het volgende commando uit te voeren:

sudo apt install postgresql postgresql-contrib –y

Start vervolgens de PostgreSQL-service bij het opnieuw opstarten van het systeem door de volgende opdracht uit te voeren:

sudo systemctl start postgresql

Om de PostgreSQL-service automatisch te starten bij het opstarten van het systeem, voert u het volgende uit:

sudo systemctl enable postgresql

Controleer of de PostgreSQL-service werkt zoals verwacht door systemctl status postgresql uit te voeren:

sudo systemctl status postgresql

Dit zou de status van de PostgreSQL-service moeten teruggeven en zou actief moeten zijn, vergelijkbaar met de onderstaande schermafbeelding.

PostgreSQL-initialisatie aanpassen

Na de installatie kan een databasecluster worden aangemaakt met behulp van het initdb-commando. De opdracht initdb moet worden uitgevoerd vanuit de databasegebruiker en niet vanuit de rootgebruiker. De root-gebruiker kan een lege map maken die door de postgres-gebruiker kan worden gewijzigd (opdracht van eigenaar wijzigen). Deze map bevat de gegevens als een sjabloon, die standaard naar alle databases wordt gekopieerd. Van de postgres-gebruiker kan het volgende commando worden aangeroepen met de juiste optie en mapnaam.

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

Het initdb-commando kan worden uitgevoerd als een geverifieerde gebruiker met de verschillende vlaggen om een ​​db-sjabloon in een bepaalde map te maken.

Hieronder vindt u een lijst met specifieke vlaggen zoals te zien is in de bovenstaande schermafbeelding:

  • --encoding UTF8 (het kan elk zijn op basis van de landinstelling).
    • De coderingsvlag stelt de codering van de databasesjabloon in. Alle databases die met die sjabloon zijn gemaakt, gebruiken ook dezelfde coderingsmethode, tenzij afzonderlijk gespecificeerd. Er zijn veel coderingsmethoden beschikbaar voor verschillende talen.
  • --pgdata test (deze vlag creëert een map met de naam "test" om de databasegegevens op te slaan).
    • Specificeert de directory waar het databasecluster zijn gegevens opslaat.
  • -A peer (dit specificeert de authenticatiemethode die wordt gebruikt in het bestand pg_hba.conf).
    • Specificeert de standaard authenticatiemethode voor lokale gebruikers die wordt gebruikt in pg_hba.conf (host en lokale lijnen). initdb zal pg_hba.conf-vermeldingen vooraf invullen met behulp van de gespecificeerde authenticatiemethode voor zowel niet-replicatie als replicatieverbindingen.
  • -k (gebruikt data-checksum om I/O-fouten te controleren)
    • Specificeert de gegevenscontrolesom op alle gegevenspagina's om de corruptie van het I/O-systeem te detecteren. Dit vertraagt ​​echter de verwerkingssnelheid van de database).

Uw PostgreSQL-database beveiligen

Tijdens de installatie wordt standaard automatisch een nieuwe gebruiker met de naam postgres aangemaakt. Deze gebruiker heeft volledige systeemrechten, dus het is belangrijk om het gebruikersaccount te beveiligen met een sterk wachtwoord.

sudo passwd postgres

Schakel nu over naar het postgres-gebruikersaccount. De gebruiker moet sudo-rechten hebben.

sudo su – postgres

De PostgreSQL-versie kan worden bevestigd door

. uit te voeren

psql -c "SELECT version();"

Het wachtwoord van postgres wijzigen gebruiker gebruik commando:

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

Opmerking:dit wachtwoord is alleen van toepassing als de postgres gebruiker maakt via het netwerk verbinding met PostgreSQL.

Om toegang te krijgen tot de Postgres-database kunt u inloggen op de PostgreSQL-database met:

psql postgres

Standaard vereist PostgreSQL geen wachtwoordverificatie van lokale systeemgebruikers om toegang te krijgen tot de database. Dit wordt "peer-authenticatie" genoemd. Wachtwoordverificatie kan echter worden ingeschakeld vanuit de pg_hba.conf bestand.

Om deze pg_hba.conf te bewerken bestand, gebruik \q commando om de postgre-shell te verlaten en de Linux-shell binnen te gaan. Bewerk vanuit de Linux-shell de pg_hba.conf het dossier. Zorg ervoor dat u een back-up maakt voordat u het bestand bewerkt.

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

Bewerk vervolgens het bestand met de nano-editor,

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

Zoek de lokale lijn onder "Alleen Unix-domein socketverbindingen" en wijzig de METHOD attribuut van peer naar md5 .

Laad de PostgreSQL-service opnieuw om de nieuwe instellingen toe te passen.

sudo systemctl reload postgresql

Houd er rekening mee dat er twee gebruikers zijn met de naam postgres; de ene is de Linux-gebruiker om verbinding te maken en toegang te krijgen tot de database, en de andere is de databasegebruiker die wordt gebruikt om beheerdersrollen in de database uit te voeren.

Uw PostgreSQL-database configureren

PostgreSQL kan handmatig worden geconfigureerd voor luisteradressen en poorten door de vereiste parameters in het bestand postgresql.conf te wijzigen.

Standaard wordt de PostgreSQL-poort 5432 gebruikt en luistert deze op localhost. Dit kan worden gewijzigd door het configuratiebestand te bewerken.

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

De service wordt opnieuw gestart nadat er wijzigingen zijn aangebracht.

sudo systemctl restart postgresql

Een nieuwe rol creëren in PostgreSQL 12

Authenticatie en autorisatie in PostgreSQL 12 gebeuren via het concept "rol". Rol is hier een flexibele term die zowel naar gebruikers als naar groepen verwijst.

Log in op de postgres-gebruiker met behulp van dit volgende commando:

sudo su postgres

Nieuwe rollen kunnen interactief worden aangemaakt vanaf de commandoregel met het createrole –interactive commando. Hier zal het gebruik van de –interactive vlag een prompt creëren voor de naam van de nieuwe rol, en of deze rol superuser permissies moet krijgen.

Een nieuwe gebruiker kan worden aangemaakt met een nieuwe rol buiten de postgresql-shell van de gebruiker als:

createuser –interactive

De uitvoer van het nieuwe gebruikerscommando zou er ongeveer zo uit moeten zien.

Een database maken en verwijderen in uw PostgreSQL-server

Wanneer in PostgreSQL 12 een nieuwe rol wordt gemaakt, moet er een nieuwe database met dezelfde naam bestaan, aangezien de rol standaard probeert verbinding te maken met de database. Dus net als in de vorige sectie, waar de gebruikersliam wordt gemaakt, kan een database met die naam worden gemaakt met behulp van de volgende opdracht:

createdb liam

Binnen PostgreSQL 12 zijn er meerdere paden voor het maken van databases zoals vereist:

  • Indien ingelogd vanaf het postgres-account:postgres@server:~$ createdb liam
  • Gebruik sudo , sudo –u postgres created liam

Om de database te verwijderen, kunnen we

. gebruiken

dropdb liam

Een Postgres-prompt openen met de nieuwe rol

Een Linux-gebruiker met dezelfde naam als de Postgres-database en rol kan worden gemaakt om in te loggen met op identiteit gebaseerde authenticatie.

Een Linux-gebruiker kan worden aangemaakt (als die nog niet bestaat) vanaf de opdrachtregel door te typen:

sudo adduser noah

Nadat de gebruiker is aangemaakt, kan deze worden aangemeld met het volgende commando;

sudo -u noah psql

De huidige database en gebruikersinformatie zijn toegankelijk via;

\conninfo

PostgreSQL-beheer

Tabellen maken en verwijderen

Het SQL-commando CREATE TABLE kan worden gebruikt om elke tabel in een database te maken. Een lijst met kolommen en een gegevenstype voor elke kolom moeten worden gespecificeerd in de opdracht.

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

Met deze opdracht wordt een tabel met de naam "klanten" gemaakt. De eerste kolom bevat de klant-ID van het type integer. De tweede en derde kolom zijn van het type karakter en bevatten de voor- en achternaam van de klanten met een maximale lengte van 80 tekens.

Deze nieuwe tabel kan worden bekeken door \d . te typen .

De tabel kan worden verwijderd door te typen:

DROP TABLE customers;

Invoegen, selecteren en verwijderen van gegevens in een tabel

Gegevens worden in de vorm van rijen aan de PostgreSQL-tabellen toegevoegd. Elke rij vertegenwoordigt een afzonderlijke set gegevens. Gegevens kunnen in de rij worden ingevoegd met behulp van de opdracht INSERT INTO. De opdrachtnaam wordt gevolgd door de "tabelnaam" (in het volgende voorbeeld klanten), het trefwoord VALUES, een lijst met waarden gescheiden door een komma.

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

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

De inhoud van de tabel kan worden bekeken met het SELECT-commando.

SELECT * FROM customers;

Een rij kan worden verwijderd met behulp van de DELETE opdracht. De WHERE trefwoord wordt gebruikt om de rijen voorwaardelijk te selecteren.

DELETE FROM customers WHERE last_name = 'Seller';

Typ:

. om alle rijen te verwijderen

SELECT * FROM customers;

Kolommen toevoegen aan en verwijderen uit een tabel

PostgreSQL 12 biedt de mogelijkheid om eenvoudig kolommen toe te voegen aan of te verwijderen uit de bestaande tabellen.

De ALTER TABLE commando wordt gebruikt samen met de ADD trefwoord om een ​​kolom aan een bestaande tabel toe te voegen. Dit veld is leeg voor de bestaande rijen in de tabel.

ALTER TABLE customers ADD branch_id int;

Hetzelfde commando wordt gebruikt met de DROP trefwoord om de opgegeven kolom uit de tabel te verwijderen.

ALTER TABLE customers DROP first_name;

Gegevens in een tabel bijwerken

Afgezien van het toevoegen en verwijderen van records in een tabel, kunnen we ze ook wijzigen. Dit kan gedaan worden met behulp van de UPDATE opdracht. We moeten de kolommen specificeren die moeten worden bewerkt met de nieuwe waarden.

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

Overwegingen voor de productieomgeving

PostgreSQL 12 kan veilig worden gebruikt in een productieomgeving. Deze database is zo stabiel dat het geen probleem zou moeten zijn om deze op grote schaal te implementeren. Raadpleeg ons vorige artikel hier voor meer informatie.

Conclusie

Deze tutorial liet je zien hoe je PostgreSQL 12 instelt op een Ubuntu 20.04-server die draait op DigitalOcean. PostgreSQL 12 is een complexe applicatie met veel nieuwe en geavanceerde functies, zoals verbeterd ruimtebeheer van standaard B-tree-indexen en ondersteuning voor het gelijktijdig opnieuw opbouwen van indexen en het maken van indexen. Versie 12 ondersteunt ook inline WITH-query's en door ICU geleverde sorteringen, verbetert de partitionering en biedt een pluggable tabelopslaginterface om verschillende methoden voor tabelopslag te creëren en te gebruiken.

Nu u de basis kent van het opzetten en gebruiken van een PostgreSQL-server, waarom probeert u dan niet een beheerd alternatief? Met een beheerde service als ScaleGrid voltooit u het hele installatie-, installatie- en configuratieproces met één klik op de knop. Begin vandaag nog met uw gratis proefperiode van 30 dagen en ontdek het zelf! Er is geen creditcard vereist en u kunt binnen enkele minuten uw allereerste database opzetten.

We hebben hier de basisprincipes van de installatie behandeld en ook enkele instructies gegeven voor algemeen databasebeheer. We hopen dat je deze handleiding nuttig vond.


  1. Oracle CREATE TABLE Commando in PL/SQL met 10 voorbeelden

  2. Een verbindingstime-out instellen met PDO

  3. Verbinding loopt vast na tijd van inactiviteit

  4. Wat is Oracle Database?