PostgreSQL installeren via Homebrew
Waarschijnlijk kennen de meeste OS X-gebruikers Homebrew
, maar Homebrew is een pakketbeheerder voor OS X waarmee je eenvoudig een enorme bibliotheek met applicaties en hulpprogramma's kunt installeren en uitvoeren.
We zullen niet het hele (zij het korte) installatieproces van Homebrew doorlopen, maar als je Homebrew wilt installeren en gebruiken voor PostgreSQL-beheer, bekijk dan de installatieopdracht in de officiële documentatie. Als je niet zeker weet of Homebrew is geïnstalleerd, probeer dan de which brew
commando van de terminal om te verifiëren.
Nadat Homebrew is geïnstalleerd, kunt u PostgreSQL installeren door de volgende opdrachten in uw terminal uit te voeren:
$ brew update
$ brew doctor
$ brew install postgres
De eerste twee opdrachten worden gebruikt om Homebrew bij te werken en eventuele problemen te melden (indien nodig). Dan, natuurlijk, brew install postgres
is de eenregelige opdracht voor het installeren van PostgreSQL.
U zou tijdens de installatie veel nuttige informatie in de uitvoer moeten zien, waarvan een groot deel moet worden gekopieerd voor gebruik in de volgende secties.
Een LaunchAgent en plist gebruiken om PostgreSQL bij opstarten te starten
In de meeste gevallen wilt u waarschijnlijk dat PostgreSQL wordt gestart wanneer u uw systeem opstart, dus u moet uw computer vertellen dat dit uw wens is.
Eerst moet u een map maken voor uw LaunchAgents
om te verblijven (als de map nog niet bestaat). LaunchAgents
in OS X zijn eenvoudige scripts die worden gebruikt door launchd
die ervoor zorgen dat het systeem programma's of code uitvoert tijdens het opstarten.
Maak uw user
-specifieke LaunchAgents
directory met dit commando, indien nodig:
$ mkdir -p ~/Library/LaunchAgents
Nu moet je een symbolische link van het script maken waarmee Postgres daadwerkelijk naar de LaunchAgents
kan rennen map. Een symbolische link is vergelijkbaar met het maken van een nieuwe kopie van een bestand voor gebruik in een andere directory, maar aangezien de link 'symbolisch' is, is de link slechts een doorstuuradres:elk verzoek aan die symbolische linklocatie wordt in feite "doorgestuurd" of omgeleid naar waar de echte bestand daadwerkelijk aanwezig is.
Link naar de plist
(property list) bestand dat is gegenereerd door Homebrew en plaats die nieuwe symbolische link in LaunchAgents
met dit commando:
$ ln -sfv /usr/local/opt/postgresql/*.plist ~/Library/LaunchAgents
Opmerking:Controleer nogmaals of het commando correct is:het had deel moeten uitmaken van de hierboven genoemde installatie-uitvoer toen Homebrew Postgres aanvankelijk installeerde.
Ten slotte laden we de nieuwe symbolische link'ed LaunchAgent
bestand met behulp van de launchctl load
commando, wat specifiek de computer informeert om dit script uit te voeren en Postgres te starten wanneer de computer opstart. Nogmaals, het exacte commando dat je moet invoeren voor je eigen installatie zal een uitvoer zijn tijdens de Homebrew's Postgres-installatie, maar het zou er ongeveer zo uit moeten zien:
$ launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
PostgreSQL handmatig starten
Om Postgres handmatig op te starten zonder opnieuw op te starten, zou je opnieuw de opdracht moeten kunnen gebruiken die tijdens de installatie is uitgevoerd, zoals:
$ postgres -D /usr/local/var/postgres
Hiermee wordt geprobeerd Postgres te starten in daemon
modus, wat betekent dat het als een achtergrondproces wordt uitgevoerd zonder uw terminal over te nemen.
Start/Stop PostgreSQL zonder homebrew
In het geval dat je Homebrew voor Postgres niet hebt (of niet wilt gebruiken), maar je hebt Postgres al geïnstalleerd, je kunt het ook handmatig starten met pg_ctl
, het starthulpprogramma dat door Postgres zelf wordt geleverd.
Hiermee wordt Postgres gestart (uitgaande van standaarddirectory's):
$ pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
En dit stopt Postgres:
pg_ctl -D /usr/local/var/postgres stop -s -m fast
Opstartproblemen oplossen:heb je initdb
uitgevoerd ?
In sommige gevallen, als je problemen hebt met het uitvoeren van Postgres, zorg er dan voor dat je de initdb
hebt uitgevoerd commando één keer, waardoor Postgres het databasecluster initialiseert voor een nieuwe installatie en u verbinding kunt maken met de standaard postgres
gebruiker.