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.
- 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.
- Klik op Volgende om verder te gaan.
- 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.
- 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.
- Geef een sterk wachtwoord op dat zal worden toegewezen aan de
postgres
gebruiker. Klik op Volgende als u klaar bent.
- Standaardpoort
5432
zou in de meeste gevallen goed moeten zijn. Klik op Volgende om naar de volgende pagina te gaan.
- Selecteer de locale voor de DB en klik op Volgende om verder te gaan.
- 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.
- 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.
- Wacht tot de installatie voltooid is. U krijgt een bevestiging te zien.
- 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 naarSQL Shell (psql)
en klik op het pictogram om depsql-shell
te openen.
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 depostgres
gebruiker. Hierdoor komt u opde postgres=#
prompt terecht.
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.