sql >> Databasteknik >  >> RDS >> PostgreSQL

Hur man startar PostgreSQL Server på Mac OS X via Homebrew

Installera PostgreSQL via Homebrew

Förmodligen känner de flesta OS X-användare till Homebrew , men Homebrew är en pakethanterare för OS X som låter dig enkelt installera och köra ett enormt bibliotek av applikationer och verktyg.

Vi kommer inte att gå igenom hela (om än korta) installationsprocessen för Homebrew, men om du vill installera Homebrew och använda den för PostgreSQL-hantering, kolla in installationskommandot i den officiella dokumentationen. Om du inte är säker på om Homebrew är installerat, prova which brew kommando från terminalen för att verifiera.

När Homebrew är installerat kan du installera PostgreSQL genom att utfärda följande kommandon i din terminal:

$ brew update
$ brew doctor
$ brew install postgres

De två första kommandona används för att uppdatera Homebrew och rapportera eventuella problem (om nödvändigt). Sedan, naturligtvis, brew install postgres är kommandot på en rad för att installera PostgreSQL.

Du bör se en hel del användbar information i utdata under installationen, varav mycket bör kopieras ner för användning i nästa avsnitt.

Använda en LaunchAgent och plist för att starta PostgreSQL vid uppstart

I de flesta fall vill du troligen ha PostgreSQL-start när du startar ditt system, så du måste tala om för din dator att detta är din önskan.

Först måste du skapa en katalog för dina LaunchAgents att bo (om katalogen inte redan finns). LaunchAgents i OS X är enkla skript som används av launchd som gör att systemet kör program eller kod under uppstart.

Skapa din user -specifika LaunchAgents katalog med detta kommando, om det behövs:

$ mkdir -p ~/Library/LaunchAgents

Nu måste du skapa en symbolisk länk från skriptet som faktiskt tillåter Postgres att köra till LaunchAgents katalog. En symbolisk länk liknar att skapa en ny kopia av en fil för användning i en annan katalog, men eftersom länken är "symbolisk" är länken bara en vidarebefordranadress:varje begäran som görs till den symboliska länkplatsen "vidarebefordras" faktiskt. eller omdirigeras till där den verkliga filen faktiskt finns.

Länk till plist (egenskapslista) fil som skapades av Homebrew och placera den nya symboliska länken i LaunchAgents med detta kommando:

$ ln -sfv /usr/local/opt/postgresql/*.plist ~/Library/LaunchAgents

Obs:Dubbelkolla att kommandot är korrekt:Det borde ha varit en del av installationsutgången som nämns ovan när Homebrew installerade Postgres initialt.

Slutligen laddar vi in ​​den nya symboliska länken LaunchAgent fil med launchctl load kommando, vilket specifikt är det som informerar datorn om att köra det här skriptet och starta Postgres när datorn startar. Återigen, det exakta kommandot att ange för din egen installation kommer att vara en utdata under Homebrews Postgres-installation, men det borde se ut ungefär så här:

$ launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist

Starta PostgreSQL manuellt

För att manuellt starta Postgres utan att starta om, igen bör du kunna använda kommandot som matades ut under installationen, så här:

$ postgres -D /usr/local/var/postgres

Detta kommer att försöka starta Postgres i daemon läge, vilket innebär att det kommer att köras som en bakgrundsprocess utan att ta över din terminal.

Starta/stoppa PostgreSQL utan hembryggning

I händelse av att du inte har (eller inte vill använda) Homebrew för Postgres, men du har Postgres installerat redan, kan du också starta det manuellt med pg_ctl , som är lanseringsverktyget som tillhandahålls av Postgres själv.

Detta startar Postgres (förutsatt standardkataloger):

$ pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start

Och detta kommer att stoppa Postgres:

pg_ctl -D /usr/local/var/postgres stop -s -m fast

Startfelsökning:Körde du initdb ?

I vissa fall, om du har problem med att köra Postgres, se till att du har kört initdb kommandot en gång, vilket får Postgres att initiera databasklustret för en ny installation och låter dig ansluta med standard postgres användare.


  1. Mysql för att välja månadsvis post även om data inte finns

  2. Hur man listar alla vyer i Oracle Database

  3. Välj Data via en tabellvärderad funktion i SQL Server

  4. Jämförelse av databaskolumntyper i MySQL, PostgreSQL och SQLite? (Cross-mapping)