PostgreSQL installeren via Homebrew
De meeste OS X gebruikers kennen waarschijnlijk wel Homebrew
, maar Homebrew is een package manager voor OS X waarmee u eenvoudig een enorme bibliotheek aan applicaties en hulpprogramma’s kunt installeren en draaien.
We zullen niet door het hele (zij het korte) installatieproces van Homebrew gaan, maar als u Homebrew wilt installeren en gebruiken voor PostgreSQL beheer, bekijk dan het installatie commando op de officiële documentatie. Als u niet zeker weet of Homebrew is geïnstalleerd, probeer dan het which brew
commando vanuit de terminal om te verifiëren.
Als Homebrew eenmaal is geïnstalleerd, kunt u PostgreSQL installeren door de volgende commando’s in uw terminal uit te voeren:
$ brew update$ brew doctor$ brew install postgres
De eerste twee commando’s worden gebruikt om Homebrew te updaten en eventuele problemen te rapporteren (indien nodig). Dan, natuurlijk, brew install postgres
is het één-regel commando voor het installeren van PostgreSQL.
U zou een heleboel nuttige informatie moeten zien in de uitvoer tijdens de installatie, waarvan u veel zou moeten kopiëren voor gebruik in de volgende secties.
Een LaunchAgent en plist gebruiken om PostgreSQL te starten bij het opstarten
In de meeste gevallen zult u PostgreSQL willen starten bij het opstarten van uw systeem, dus u zult uw computer moeten vertellen dat dit uw wens is.
Eerst moet u een directory maken voor uw LaunchAgents
(als de directory 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 zo nodig uw user
-specifieke LaunchAgents
directory aan met dit commando:
$ mkdir -p ~/Library/LaunchAgents
Nu moet u een symbolische koppeling maken vanuit het script dat Postgres daadwerkelijk laat draaien naar de LaunchAgents
directory. Een symbolische link is vergelijkbaar met het maken van een nieuwe kopie van een bestand voor gebruik in een andere directory, maar omdat de link “symbolisch” is, is de link slechts een doorstuuradres: elk verzoek dat wordt gedaan naar die symbolische link-locatie wordt feitelijk “doorgestuurd” of omgeleid naar waar het echte bestand zich feitelijk bevindt.
Link naar het plist
(eigenschappenlijst) 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
Note: Dubbelcheck of het commando correct is: het zou deel moeten uitmaken van de hierboven genoemde installatie-uitvoer toen Homebrew Postgres initieel installeerde.
Ten slotte laden we het nieuwe symbolic link’ed LaunchAgent
bestand met het launchctl load
commando, dat specifiek de computer informeert om dit script uit te voeren en Postgres te starten wanneer de computer opstart. Nogmaals, het exacte commando dat u voor uw eigen installatie moet invoeren, zal een uitvoer zijn tijdens de Postgres-installatie van Homebrew, maar het zou er ongeveer zo uit moeten zien:
$ launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
Handmatig PostgreSQL starten
Om Postgres handmatig op te starten zonder opnieuw op te starten, moet u opnieuw het commando kunnen gebruiken dat tijdens de installatie werd uitgevoerd, zoals dit:
$ postgres -D /usr/local/var/postgres
Dit zal proberen Postgres te starten in daemon
modus, wat betekent dat het als een achtergrondproces zal draaien zonder uw terminal over te nemen.
Start/Stop PostgreSQL zonder Homebrew
In het geval dat u geen Homebrew voor Postgres hebt (of wilt gebruiken), maar Postgres toch al hebt geinstalleerd, kunt u het ook handmatig starten met pg_ctl
, het startprogramma dat door Postgres zelf wordt geleverd.
Hiermee start u Postgres (uitgaande van standaardmappen):
$ pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
En hiermee stopt u Postgres:
pg_ctl -D /usr/local/var/postgres stop -s -m fast
Startproblemen oplossen: Did You Run initdb?
In sommige gevallen, als u problemen hebt met het opstarten van Postgres, moet u ervoor zorgen dat u het initdb
commando één keer hebt uitgevoerd, waardoor Postgres de databasecluster voor een nieuwe installatie initialiseert en u verbinding kunt maken met de standaard postgres
gebruiker.