PostgreSQL Databasebeheer en Gebruik
PostgreSQL is een krachtig, zeer uitbreidbaar en standaard-conform open source relationeel databasemanagementsysteem dat wereldwijd geliefd is bij ontwikkelaars. ServBay is een speciaal voor macOS ontworpen lokale webontwikkelomgeving die PostgreSQL ingebouwd heeft, waardoor installatie en beheer sterk wordt vereenvoudigd.
Dit artikel dient als een gids voor ontwikkelaars en behandelt in detail hoe je PostgreSQL efficiënt beheert en gebruikt binnen de ServBay-omgeving, van installatie en configuratie tot dagelijkse handelingen, back-up en herstel, prestatieoptimalisatie en beveiliging.
Installatie en Configuratie van PostgreSQL
ServBay biedt een intuïtieve grafische interface voor het beheren van softwarepakketten, waaronder PostgreSQL.
PostgreSQL Installeren
- Open de ServBay-app.
- Klik in de linker navigatiebalk op
Pakketten
. - Zoek
PostgreSQL
in de pakketlijst. - Kies de gewenste PostgreSQL-versie (ServBay ondersteunt meerdere versies, bijvoorbeeld PostgreSQL 10 t/m 17).
- Klik op de installatietoets om te beginnen met installeren.
Afbeelding: Kies en installeer een PostgreSQL-versie in ServBay
Starten, Stoppen en Beheren van PostgreSQL-diensten
Na de installatie kun je de status van de PostgreSQL-dienst beheren via het ServBay beheerplatform of de opdrachtregeltool servbayctl
.
Beheer via het ServBay Beheerplatform
- Open de ServBay-app.
- Klik in de linker navigatiebalk op
Pakketten
. - Zoek de geïnstalleerde PostgreSQL-versie.
- Gebruik de schakelknop naast het pakket om de dienst te starten, stoppen of herstarten.
Gebruik van de opdrachtregeltool servbayctl
servbayctl
is de krachtige commandline-interface van ServBay, waarmee je alle onderdelen van ServBay beheert.
bash
# Start een specifieke versie van de PostgreSQL-dienst (bijv. PostgreSQL 16)
servbayctl start postgresql 16
# Stop een specifieke versie van de PostgreSQL-dienst (bijv. PostgreSQL 16)
servbayctl stop postgresql 16
# Herstart een specifieke versie van de PostgreSQL-dienst (bijv. PostgreSQL 16)
servbayctl restart postgresql 16
# Controleer de status van een specifieke PostgreSQL-dienst (bijv. PostgreSQL 16)
servbayctl status postgresql 16
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
Let op: het versienummer in het commando (zoals 16
) moet overeenkomen met de versie van PostgreSQL die jij in ServBay hebt geïnstalleerd.
PostgreSQL Configureren
ServBay maakt het gemakkelijk om de instellingen van PostgreSQL te wijzigen. Een goede configuratie is essentieel voor prestaties, veiligheid en het efficiënt gebruiken van systeembronnen.
ServBay beschikt over een krachtige grafische interface voor het instellen van PostgreSQL, maar je kunt ook direct de configuratiebestanden aanpassen. Raadpleeg de documentatie PostgreSQL-instellingen wijzigen voor instructies om via de ServBay-interface of handmatig de configuratieparameters aan te passen en te optimaliseren.
Verbinding maken met de PostgreSQL-database
Verbinding maken met PostgreSQL is de eerste stap voor databasebeheer. Je kunt hiervoor de commandline-tool psql
gebruiken of een grafisch hulpmiddel zoals pgAdmin, waarmee je kunt verbinden met de PostgreSQL-instanties die in ServBay draaien.
ServBay ondersteunt twee hoofdmanieren om verbinding te maken met PostgreSQL: TCP/IP-verbindingen (geschikt voor externe tools of koppeling tussen containers/services) en lokale socket-verbindingen (aanbevolen binnen ServBay, voor betere prestaties en meer veiligheid).
Verkrijg Verbindingsgegevens
Voor je verbinding maakt, moet je de gebruikersnaam en het wachtwoord van PostgreSQL ophalen. ServBay stelt meestal standaardinloggegevens in bij installatie of initialisatie van de database. Je vindt deze gegevens in de ServBay-beheerinterface, vooral voor standaardgebruikers (zoals postgres
) of andere gebruikers die je aanmaakt.
Verbinden via de opdrachtregeltool psql
psql
is de officiële interactieve commandline-client van PostgreSQL.
Verbinding via TCP/IP: Deze methode gebruikt het netwerk (meestal voor
localhost
of externe adressen). De standaardpoort voor PostgreSQL in ServBay is5432
.bashpsql -U your_username -h localhost -d your_database -p 5432
1Vervang
your_username
door je databasegebruikersnaam enyour_database
door de naam van je database.Verbinding via Lokale Socket: ServBay gebruikt standaard een Unix Domain Socket, waarmee je via een lokaal bestand en zonder netwerklayer verbindt: veiliger én sneller. Het socketbestand bevindt zich gewoonlijk in de tijdelijke ServBay-map.
bashpsql -U your_username -h /Applications/ServBay/tmp -d your_database
1Vervang
your_username
door je databasegebruikersnaam,your_database
door de naam van je database./Applications/ServBay/tmp
is het standaard pad waar de PostgreSQL-socket van ServBay staat.
Verbinden met het grafische hulpmiddel pgAdmin
pgAdmin is een populair, open-source grafisch hulpprogramma voor het beheren van PostgreSQL, vol handige functies.
- Installeer pgAdmin: Als pgAdmin niet standaard met ServBay is meegeleverd, download en installeer het dan via de officiële pgAdmin website.
- Start pgAdmin.
- Maak een nieuwe serververbinding: klik op
Add New Server
. - Voer verbindingsgegevens in:
- General tab: Voer een naam in voor de verbinding (bv.
ServBay PostgreSQL
). - Connection tab:
- Hostname/address:
localhost
- Port:
5432
- Maintenance database: meestal
postgres
- Username: de gebruikersnaam uit het ServBay-beheer (bv.
postgres
) - Password: het wachtwoord uit het ServBay-beheer
- Hostname/address:
- SSL mode: Kies afhankelijk van je behoefte (gewoonlijk
Prefer
ofRequire
voor betere veiligheid, maar onder de standaardconfiguratie van ServBay werkenAllow
ofDisable
meestal ook—zie de ServBay SSL-instellingen).
- General tab: Voer een naam in voor de verbinding (bv.
- Klik op
Save
om verbinding te maken met de databaseserver.
Basis Databasebeheer
Eenmaal verbonden met PostgreSQL, kun je allerlei databasebeheer-taken uitvoeren.
Databases en Gebruikers Tonen
Via de opdrachtregel in psql
kun je met metacommands (die met een \
beginnen) de bestaande databases en gebruikers weergeven:
- Toon alle databases:sql
\l
1 - Toon alle gebruikers (rollen):sql
\du
1
Databases en Gebruikers Aanmaken
Je kunt SQL-commando’s gebruiken om nieuwe databases en gebruikers aan te maken, en hun rechten toekennen.
Nieuwe database aanmaken:
sqlCREATE DATABASE servbay_demo_db;
1Het is aan te bevelen een beschrijvende naam te kiezen, bijvoorbeeld gerelateerd aan je project.
Nieuwe gebruiker (rol) aanmaken en wachtwoord instellen:
sqlCREATE USER servbay_user WITH PASSWORD 'a_strong_password';
1Vervang
servbay_user
door je gewenste gebruikersnaam, ena_strong_password
door een veilig wachtwoord.Rechten toekennen aan een gebruiker op een database:
sqlGRANT ALL PRIVILEGES ON DATABASE servbay_demo_db TO servbay_user;
1Hiermee krijgt
servbay_user
alle rechten op de databaseservbay_demo_db
. Geef gebruikers volgens het principe van minimale rechten altijd alleen de benodigde toegang.
Wachtwoord van de PostgreSQL root-gebruiker Resetten
Mocht je het wachtwoord van de PostgreSQL root-gebruiker (standaard postgres
) vergeten zijn, dan biedt ServBay een snelle reset-optie. Dit kan gewoonlijk via de beheerinterface zonder ingewikkelde commandoregel-acties of aanpassing van configuratiebestanden. Je vindt deze optie binnen de instellingen van het PostgreSQL-pakket of de gebruikersbeheerpaneel in ServBay.
Database Back-up en Herstel
Regelmatig back-uppen is essentieel om je data veilig te houden. In de ServBay-omgeving kan dit met de standaard PostgreSQL-tools pg_dump
en pg_restore
, maar ook via de ingebouwde back-upfunctie van ServBay.
Handmatig Back-uppen met pg_dump
Met het pg_dump
-gereedschap kun je eenvoudig een back-up van je PostgreSQL-database maken.
Plaats back-upbestanden bij voorkeur in de aanbevolen back-upmap van ServBay:
bash
/Applications/ServBay/backup/postgresql
1
Voorbeeld van het back-uppen van een database met pg_dump
:
bash
pg_dump -U your_username -d your_database -F c -b -v -f /Applications/ServBay/backup/postgresql/your_database_backup.dump
1
-U your_username
: Gebruikersnaam die verbinding maakt met de database.-d your_database
: De naam van de te back-uppen database.-F c
: Maakt een archief in een aangepast formaat (aanbevolen voor flexibeler herstel).-b
: Neemt grote objecten (Blobs) mee.-v
: Toont uitgebreide uitvoer.-f <bestandspad>
: Het pad en de naam van het back-upbestand.
Handmatig Herstellen met pg_restore
Met het pg_restore
-gereedschap kun je een database herstellen vanuit een pg_dump-archiefbestand.
bash
pg_restore -U your_username -d target_database -v /Applications/ServBay/backup/postgresql/your_database_backup.dump
1
-U your_username
: Databasegebruikersnaam.-d target_database
: Doeldatabase voor herstel (maak deze aan als hij nog niet bestaat).-v
: Uitgebreide uitvoer.<bestandspad>
: Pad naar het back-upbestand.
Gebruik van de Ingebouwde Back-upfunctie van ServBay
ServBay biedt een grafische interface en automatiseringsopties voor back-ups van je hele lokale ontwikkelomgeving, inclusief PostgreSQL.
Ondersteunde back-upfuncties in ServBay:
- Handmatige back-up: Met één klik een snapshot van je huidige omgeving via de UI.
- Automatische back-up: Stel een schema in zodat ServBay automatisch periodiek back-ups maakt.
De back-up omvat ServBay-instellingen, projectbestanden, alle databases (inclusief PostgreSQL), SSL-certificaten enzovoort. Het wordt sterk aangeraden hiervan gebruik te maken voor gebruiksgemak en dataveiligheid. Je vindt back-upinstellingen en -beheer binnen het instellingenmenu of hoofdscherm van ServBay.
Prestatieoptimalisatie
Om optimale prestaties van je PostgreSQL database in de ServBay-omgeving te garanderen, kun je de volgende optimalisaties toepassen.
Indexoptimalisatie
Database-indexen versnellen zoekopdrachten aanzienlijk, zeker bij grote tabellen en veelgebruikte kolommen in queries.
Zorg ervoor dat er indexen bestaan op kolommen die vaak worden gebruikt in WHERE
-clausules, bij joins, of voor sortering (ORDER BY
).
sql
CREATE INDEX idx_your_column_name ON your_table_name(your_column_name);
1
Vervang your_table_name
door de tabelnaam, your_column_name
door de kolomnaam, en idx_your_column_name
door een geschikte indexnaam.
Query-optimalisatie
Analyseer SQL-queries met het EXPLAIN
commando om het uitvoeringsplan te zien, zodat je potentiële knelpunten kunt ontdekken.
sql
EXPLAIN SELECT * FROM your_table_name WHERE column_name = 'value';
1
De uitvoer laat bijvoorbeeld zien of indexen worden gebruikt, hoe tabellen worden gecombineerd, en hoeveel rijen worden gescand—gebruik deze informatie om queries en indexen beter te ontwerpen.
Configuratie-optimalisatie
Door PostgreSQL’s configuratiebestand (postgresql.conf
) aan te passen kun je verschillende parameters finetunen, afgestemd op jouw hardware en de aard van je werk.
Stel bijvoorbeeld het shared_buffers
-parameter bij: hiermee regel je hoeveel geheugen PostgreSQL gebruikt voor caching. Dit verlaagt disk I/O en verbetert prestaties (let op: stel niet meer in dan je systeem aankan).
ini
# Voorbeeld van een postgresql.conf-instelling
shared_buffers = 1GB # Stem af op je systeemgeheugen en belasting
1
2
2
Na wijzigen moet de PostgreSQL-dienst meestal herstarten. Zie de ServBay-documentatie voor daadwerkelijke aanpassingen.
Beveiligingsbeheer
Beveiligingsmaatregelen zijn essentieel, zeker als je gevoelige data verwerkt in je ontwikkelomgeving.
Sterke Wachtwoorden instellen
Stel voor alle databasegebruikers, en vooral voor gebruikers met veel rechten (zoals postgres
), complexe en unieke wachtwoorden in. Vernieuw wachtwoorden regelmatig.
sql
ALTER USER your_username WITH PASSWORD 'your_new_strong_password';
1
Regelmatige Back-ups
Zoals eerder beschreven: maak regelmatig back-ups. Door ServBay’s ingebouwde back-up en eigen pg_dump
-back-ups te combineren, bouw je een betrouwbaar back-upplan op.
Beperk Gebruikersrechten
Pas het principe van minimale rechten toe: geef gebruikers nooit meer rechten dan nodig is. Vermijd het toekennen van ALL PRIVILEGES
aan alle gebruikers.
sql
-- Trek alle rechten in op de database voor een gebruiker
REVOKE ALL PRIVILEGES ON DATABASE mydatabase FROM your_username;
-- Geef alleen het recht om verbinding te maken en tijdelijke tabellen te maken
GRANT CONNECT, TEMPORARY ON DATABASE mydatabase TO your_username;
-- Geef SELECT, INSERT, UPDATE, DELETE-rechten op specifieke tabellen
GRANT SELECT, INSERT, UPDATE, DELETE ON TABLE your_table_name TO your_username;
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
Netwerktoegangscontrole
Standaard beperkt ServBay databaseverbindingen tot het lokale netwerk (localhost
of 127.0.0.1
). Hierdoor is de database niet direct bereikbaar van buitenaf, wat voor extra veiligheid zorgt. Stel de database alleen bloot aan het externe netwerk als dat echt nodig is en je de risico’s begrijpt.
Veelgestelde Vragen en Oplossingen
Kan geen verbinding maken met PostgreSQL
- Controleer of de PostgreSQL-dienst draait: Kijk in de ServBay UI of check met
servbayctl status postgresql <versie>
. Start de dienst als die niet draait. - Controleer de verbindingsparameters: Ga na of je gebruikersnaam, wachtwoord, databasenaam, host (
localhost
of/Applications/ServBay/tmp
) en poort (5432
) correct zijn. Controleer de gegevens zoals getoond in de ServBay UI. - Bekijk de ServBay-logbestanden: Bekijk de logbestanden van ServBay voor typische PostgreSQL-fouten; vaak staat daar de oorzaak van verbindingproblemen.
- Firewall-instellingen nakijken: In de standaard lokale ServBay-configuratie is dit zelden een probleem, maar als je software- of systeemfirewall streng staat, zorg er dan voor dat lokale verbindingen met de PostgreSQL-processen van ServBay zijn toegestaan.
Problemen met Rechten
Bij de foutmelding "Permission Denied" heeft de gebruiker te weinig rechten.
- Controleer de rechten van de huidige gebruiker: Bekijk de gebruikerslijst en hun eigenschappen met
\du
inpsql
, en de rechten op een specifieke tabel met\dp <table_name>
. - Verleen de benodigde rechten: Verbind met een gebruiker met voldoende rechten (zoals
postgres
) en gebruik hetGRANT
-commando om de juiste rechten toe te kennen:sqlGRANT ALL PRIVILEGES ON DATABASE mydatabase TO your_username; -- Database-rechten GRANT SELECT ON TABLE your_table_name TO your_username; -- Tabelrechten
1
2
Samenvatting
PostgreSQL is een krachtig en flexibel databasesysteem, en ServBay maakt het beheren en implementeren van PostgreSQL op macOS bijzonder eenvoudig. Dankzij deze gids kun je PostgreSQL in de ServBay-omgeving installeren, configureren, verbinden, basistaken uitvoeren, back-ups maken (zowel via ServBay als handmatig), je prestaties optimaliseren en de beveiliging verbeteren. Met deze kennis kun je efficiënter en veiliger lokaal webapplicaties ontwikkelen.