Geekflare wordt ondersteund door ons publiek. We kunnen affiliate commissies verdienen met het kopen van links op deze site.
In Database Laatst bijgewerkt: 23 september 2023
Deel op:
Invicti beveiligingsscanner voor webtoepassingen - de enige oplossing die automatische verificatie van kwetsbaarheden levert met Proof-Based Scanning™.

PostgreSQL is een van de populaire, platformonafhankelijke, open-source object-relationele databasesystemen die robuust, goed presterend en betrouwbaar zijn en een sterke gemeenschap hebben

Het dateert uit 1986 als onderdeel van het POSTGRES-project aan de Universiteit van Californië, Berkeley, en draagt 30 jaar actieve ontwikkeling op zijn kernplatform met zich mee. De consistente prestaties door de jaren heen hebben de integriteit, architectuur en uitbreidbaarheid voor zakelijk gebruik bewezen. Het is ACID-conform en biedt ondersteuning voor krachtige uitbreidingen zoals de populaire PostGIS geospatial database extender

In dit artikel behandelen we de installatie van PostgreSQL op gangbare platformen

Dus laten we beginnen

Ubuntu

PostgreSQL is beschikbaar voor alle smaken en versies van Ubuntu. U hebt de keuze om de versie te installeren en te gebruiken die standaard beschikbaar is voor uw versie van Ubuntu en die levenslang ondersteund wordt, of om een specifieke versie te gebruiken door de PostgreSQL-repository toe te voegen en die te installeren. We zullen beide opties hier behandelen

Om de standaard ondersteunde versie te gebruiken die door Ubuntu’s repository wordt geleverd, voert u het volgende uit

$ sudo apt-get update

$

 sudo apt-get -y install postgresql

PostgreSQL Apt Repository ondersteunt de huidige LTS-versies van Ubuntu, d.w.z. 20.04, 18.04 en 16.04. Hoewel het misschien niet volledig wordt ondersteund, werken dezelfde pakketten ook op niet-LTS versies door de dichtstbijzijnde LTS versie te gebruiken

Volg deze stappen om PostgreSQL apt repository te gebruiken

$ sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'

$

 wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -

$

 sudo apt-get update

$

 sudo apt-get -y install postgresql

Om een specifieke versie uit de PostgreSQL repository te installeren, in plaats van alleen postgresql die verwijst naar de nieuwste versie, specificeer het als postgresql-12

$ sudo apt-get -y install postgresql-12

De repository bevat ook verschillende pakketten, waaronder addons van derden. Bijvoorbeeld, algemeen beschikbare pakketten voor versie 12 van PostgreSQL bevatten

postgresql-client-12 clientbibliotheken en clientbinaire bestanden
postgresql-12 kern databaseserver
postgresql-contrib-9.x aanvullende meegeleverde modules (onderdeel van het postgresql-xx pakket in versie 10 en later)
libpq-dev bibliotheken en headers voor frontend-ontwikkeling in de C-taal
postgresql-server-dev-12 bibliotheken en headers voor backend-ontwikkeling in de C-taal
pgadmin4 pgAdmin 4 grafisch beheerprogramma

Zodra de installatie voltooid is, kunt u de status van de DB-service controleren met het onderstaande commando

$ sudo systemctl status postgresql.service

Voor Ubuntu zou de service na de installatie ingeschakeld moeten zijn en als volgt moeten werken

$ sudo systemctl status postgresql.service
● postgresql.service - PostgreSQL RDBMS
 Geladen: geladen (/lib/system/system/postgresql.service; ingeschakeld; vendor preset: ingeschakeld)
 Actief: actief (exited) sinds Sun 2021-06-06 16:06:45 UTC; 46s ago
 Main PID: 3364 (code=exited, status=0/SUCCESS)
 Taken: 0 (limiet: 1113)
 Geheugen: 0B
 CGroup: /system.slice/postgresql.service

Jun 06 16:06:45 ubuntu20cloud systemd<x><x><x>[1]</x></x></x>: PostgreSQL RDBMS starten...
Jun 06 16:06:45 ubuntu20cloud systemd<x><x><x>[1]</x></x></x>: PostgreSQL RDBMS beëindigd.

$

CentOS

Net als Ubuntu bevatten ook de RHEL/CentOS-repositories een specifieke versie van PostgreSQL, die gedurende de levensduur van het OS wordt ondersteund. U kunt hetzelfde installeren met

$ sudo yum install -y postgresql-server

of u kunt DNF gebruiken als u CentOS 8 gebruikt

$ sudo dnf install -y postgresql-server

Voer onderstaande commando’s na de installatie uit om de DB te initialiseren, de PostgreSQL-service in te schakelen en te starten

$ sudo postgresql-setup initdb

$

 sudo systemctl enable postgresql.service

$

 sudo systemctl start postgresql.service

Of om de pakketten direct van PostgreSQL yum repositories te gebruiken, moeten we de repository toevoegen als

$ sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

En dan om een specifieke versie van PostgreSQL te installeren, zoals versie 13, die de laatste stabiele release is op het moment van schrijven van dit artikel, gebruiken

$ sudo yum install -y postgresql13-server

de yum repository bevat ook aanvullende pakketten voor PostgreSQL, waarvan enkele belangrijke hieronder zijn opgesomd

postgresql-client bibliotheken en client binaries
postgresql-server kern databaseserver
postgresql-contrib extra meegeleverde modules
postgresql-devel bibliotheken en headers voor C taalontwikkeling

Voer onderstaande stappen na de installatie uit om de DB te initialiseren, de Postgresql-service in te schakelen en te starten

$ sudo /usr/pgsql-13/bin/postgresql-13-setup initdb

$

 sudo systemctl enable postgresql-13

$

 sudo systemctl start postgresql-13

U kunt de status van de DB-service controleren met het onderstaande commando

$ sudo systemctl status postgresql.service
● postgresql.service - PostgreSQL database server
 Geladen: geladen (/usr/lib/system/system/postgresql.service; enabled; vendor preset: disabled)
 Actief: actief (running) sinds Sun 2021-06-06 16:39:35 GMT; 1min 12s ago
 Proces: 7011 ExecStart=/usr/bin/pg_ctl start -D ${PGDATA} -s -o -p ${PGPORT} -w -t 300 (code=exited, status=0/SUCCESS)
 Proces: 7005 ExecStartPre=/usr/bin/postgresql-check-db-dir ${PGDATA} (code=exited, status=0/SUCCESS)
 CGroup: /system.slice/postgresql.service
 ├─7014 /usr/bin/postgres -D /var/lib/pgsql/data -p 5432
 ├─7015 postgres: logger proces
 ├─7017 postgres: checkpointer proces
 ├─7018 postgres: writer process
 ├─7019 postgres: wal writer process
 ├─7020 postgres: autovacuum launcher process
 └─7021 postgres: stats collector process

Jun 06 16:39:34 centos7cloud systemd<x><x><x>[1]</x></x></x>: PostgreSQL databaseserver starten...
Jun 06 16:39:35 centos7cloud systemd<x><x><x>[1]</x></x></x>: PostgreSQL databaseserver gestart.

$

Windows

Windows 32-bit en 64-bit installers zijn beschikbaar vanaf de officiële PostgreSQL site hier

  • U kunt de toepasselijke binary downloaden op basis van de vereiste versie en architectuur.

postgresql-download

  • Wij zullen de nieuwste versie downloaden, namelijk v13.3 voor Windows 64-bit platform. Zodra de download is voltooid, start u het installatieprogramma door erop te dubbelklikken.

postgresql-install-launch

  • Klik op Volgende om verder te gaan.

postgresql-install-location

  • Klik op Volgende om door te gaan met het standaardpad of geef uw aangepaste installatiepad op.

  • U kunt de standaardonderdelen geselecteerd laten en op Volgende klikken om verder te gaan.

postgresql-install-datadir

  • Vervolgens wordt gevraagd naar de locatie van de gegevensmap; deze kunt u als standaardlocatie behouden, tenzij u er een aparte schijf of map voor hebt toegewezen. Klik op Volgende om verder te gaan.

postgresql-install-password

  • Geef een sterk wachtwoord op dat zal worden toegewezen aan de postgres gebruiker. Klik op Volgende als u klaar bent.

postgresql-install-port

  • Standaardpoort 5432 zou in de meeste gevallen goed moeten zijn. Klik op Volgende om naar de volgende pagina te gaan.

postgresql-install-locale

  • Selecteer de locale voor de DB en klik op Volgende om verder te gaan.

postgresql-install-confirmation

  • Alle geselecteerde instellingen voor de installatiewizard worden weergegeven zodat u ze kunt controleren en bevestigen. Als er iets veranderd moet worden, ga dan terug en verander hetzelfde of klik op Volgende om door te gaan naar de volgende pagina.

postgresql-install-confirmation-1

  • Setup zal aangeven dat het klaar is om door te gaan met de installatie. Als u klaar bent, klikt u op Volgende om de installatie te starten.

postgresql-install-progress

  • Wacht tot de installatie voltooid is. U krijgt een bevestiging te zien.

postgresql-install-completed

  • Zodra deze voltooid is, kunt u het vinkje bij Stack Builder weghalen en op Finish klikken om de installatiewizard af te sluiten. Klik op Start Menu en zoek naar SQL Shell (psql) en klik op het pictogram om de psql-shell te openen.

psql-start-menu

  • SQL Shell (psql) wordt geopend waar u met uw <a href="https://geekflare.com/postgresql-monitoring-tools/">PostgreSQL-instantie</a> kunt communiceren <a href="https://geekflare.com/postgresql-monitoring-tools/">nadat u de verbindingsgegevens hebt opgegeven</a>. Alle items kunnen als standaard worden geselecteerd door simpelweg op <code>Enter te drukken, behalve het wachtwoord, waar u het wachtwoord moet invoeren dat tijdens de installatiewizard is opgegeven voor de postgres gebruiker. Hierdoor komt u op de postgres=# prompt terecht.

psql-sql-shell-windows

Verbinding maken met PostgreSQL

Na de installatie wordt automatisch een postgres-gebruiker aangemaakt, die superadmin-toegang heeft tot de DB-instantie. Op Linux kunt u, als een bevoorrechte gebruiker, overschakelen naar dit account als

$ sudo su - postgres

Eenmaal binnen, kunnen we het wachtwoord van de postgres-gebruiker opnieuw instellen als volgt

$ psql -c "alter user postgres with password 'P@SsW0rdH3r3'"

En dan PostgreSQL prompt starten met psqlas

$ psql

Dit brengt u in de PostgreSQL prompt

$ psql
psql (12.7 (Ubuntu 12.7-0ubuntu0.20.04.1))
Typ "help" voor hulp.

postgres=#

Op deze prompt kunt u communiceren met de database en DB admin- of gebruikerstaken uitvoeren. Als demo kunt u in de onderstaande stappen een DB en een gebruiker aanmaken en vervolgens privileges toekennen aan de nieuwe gebruiker om op de nieuwe database te werken

postgres=# CREATE DATABASE geekflaredb;

CREATE

DATABASE
postgres=# CREATE USER geekuser WITH ENCRYPTED PASSWORD 'N3wP@33w0rD';

CREATE

ROLE
postgres=# GRANT ALL PRIVILEGES ON DATABASE geekflaredb to geekuser;
GRANT
postgres=#

Vervolgens kunnen we de DB’s oplijsten met het commando \l

postgres=# \l
 Lijst van databases
 Naam | Eigenaar | Codering | Collate | Ctype | Toegangsprivileges
------------- ---------- --------- -----------------------
 geekflaredb | postgres | UTF8 | C.UTF-8 | C.UTF-8 | =Tc/postgres
 | | | | postgres=CTc/postgres
 | | | | geekuser=CTc/postgres
 postgres | postgres | UTF8 | C.UTF-8 | C.UTF-8 |
 template0 | postgres | UTF8 | C.UTF-8 | C.UTF-8 | =c/postgres
 | | | postgres=CTc/postgres
 template1 | postgres | UTF8 | C.UTF-8 | C.UTF-8 | =c/postgres
 | | | | postgres=CTc/postgres
(4 rijen)

postgres=#

Nu kunt u gewoon verbinding maken met een DB met

postgres=# \c geekflaredb
U bent nu verbonden met database "geekflaredb" als gebruiker "postgres".
geekflaredb=#

Samenvatting

PostgreSQL is één van de meest gebruikte databases in de bedrijfswereld vanwege zijn robuustheid, mogelijkheden en schaalbaarheid. Het is gemakkelijk te leren en probeert compatibel te zijn met SQL-standaarden

Er is een handleiding beschikbaar voor PostgreSQL op de officiële site.

  • Abhishek Nair
    Auteur
Met dank aan onze sponsors
Meer geweldige lezingen over Database
Energie voor uw bedrijf
Enkele van de tools en services om je bedrijf te helpen groeien.
  • Invicti maakt gebruik van Proof-Based Scanning™ om de geïdentificeerde kwetsbaarheden automatisch te verifiëren en binnen enkele uren bruikbare resultaten te genereren.
    Probeer Invicti
  • Web scraping, residentiële proxy, proxy manager, web unlocker, zoekmachine crawler en alles wat je nodig hebt om webgegevens te verzamelen.
    Probeer Brightdata
  • Monday.com is een alles-in-één werk OS om je te helpen bij het beheren van projecten, taken, werk, verkoop, CRM, operaties, workflows en meer.
    Probeer maandag
  • Intruder is een online kwetsbaarhedenscanner die zwakke plekken in de cyberbeveiliging van uw infrastructuur vindt om kostbare datalekken te voorkomen.
    Probeer indringer