Hoe PostgreSQL Server starten op Mac OS X via Homebrew

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.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *