Wie läuft psql unter Mac OS X?

54

Ich habe PostgreSQL mit dem One-Click-Installer auf einem Computer mit Mac OS X installiert . Dann versuche ich, mit dem psqlBefehl auf PostgreSQL zuzugreifen , aber es scheint nicht verfügbar zu sein.

Ich erhalte diese Nachricht:

psql
-bash: psql: command not found

Muss ich noch etwas installieren? Oder wie kann ich PostgreSQL so konfigurieren, dass ich es auf meinem Computer verwenden kann?

Jonas
quelle

Antworten:

41

Suchen Sie die psql-Binärdatei. (Führen Sie in einem Terminal locate psql | grep /binden Pfad aus und notieren Sie ihn. (In meinem Fall so /opt/local/lib/postgresql90/bin/, wie er mit MacPorts installiert wurde.)

Bearbeiten Sie dann die .bash_profileDatei in Ihrem Home-Ordner (z. B. mate -w ~/.bash_profilevorausgesetzt, Sie haben einen Textmate) und fügen Sie die erforderliche Zeile so hinzu, dass sie sich in Ihrem Pfad befindet, z.

export PATH=/opt/local/lib/postgresql90/bin/:$PATH

Nachdem Sie die Datei gespeichert haben, lesen Sie die Datei ( . ~/.bash_profile) oder öffnen Sie ein neues Terminal und geben Sie Folgendes ein psql.

Denis de Bernardy
quelle
18
Danke, mein Pfad zu psql war /Library/PostgreSQL/9.0/bin/psqlund ich habe eine .bash_profileDatei wie von Ihnen vorgeschlagen erstellt und sie funktioniert großartig.
Jonas
1
@Jonas: +1 Ihr Kommentar sollte wirklich in eine separate Antwort eingehen und die akzeptierte Antwort sein, da dies der Standardspeicherort ist, wenn Postgres auf einem Mac installiert wird!
Stefan Haberl
Der locate - Befehl nicht für mich anfangs funktionierte, hatte ich zum ersten Mal laufen sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plistdann für die Wartezeit findProzess zu beenden
magritte
musste auch die .bash_profile datei erstellen, mac noob hier! ;-) arbeite jetzt aber, danke!
Magritte
3
besserexport PATH=/Applications/Postgres.app/Contents/Versions/latest/bin/:$PATH
andilabs
12

Die Art und Weise, wie Sie den Client installieren, wenn Sie Hombrew verwenden möchten, ist:

$ brew install postgresql

dann psqlsteht Ihnen (die Client-Befehlszeile) jetzt zur Verfügung (es installiert auch einen lokalen Postgres-Server / eine lokale Postgres-Datenbank, aber Sie müssen diese nicht verwenden, wenn Sie nur den Client benötigen).

Anscheinend gibt es auch einen 'Wrapper' für psql, um es "benutzerfreundlicher" zu machen, falls es interessant sein sollte, auch über homebrew ( brew install pgcli).

Pgcli is a command line interface for Postgres with auto-completion and syntax highlighting.

Eine andere Möglichkeit ist, das libpqHomebrew-Paket zu installieren , aber Sie müssen es zwangsweise verknüpfen (was heutzutage nicht mehr empfohlen wird).

 brew link --force libpq  

oder füge es deinem PFAD hinzu, siehe die Anweisungen, die Homebrew nach der Installation sagt.

Rogerdpack
quelle
4
Anscheinend gibt es keine Möglichkeit, psqlohne die gesamte Datenbank-Engine zu installieren. Ich fand pgclies bequemer, wenn Sie zum Beispiel alle Ihre Dienste andocken lassen möchten. Weiter so @rogerdpack!
Saul Martínez
11

Ich empfehle dringend die Verwendung Postgres.appdes Heroku-Teams, das auch von ihnen unterstützt wird!

Es hat ein Menüleisten-Symbol und das Menü hat einen Eintrag psql:

Postgres.app Menüleiste Symbol Menü

Hier finden Sie auch Informationen psqldazu, ob Sie dieselbe Version wie der Server verwenden möchten (der Pfad kann je nach Version variieren):

/Applications/Postgres.app/Contents/MacOS/bin

Wenn Sie möchten, können Sie diesen Pfad zu Ihrem Startskript hinzufügen, um ihn psqldirekt auszuführen :

PATH=/Applications/Postgres.app/Contents/MacOS/bin:$PATH

VORBEHALT! AFAIK Postgres.appunterstützt keine Verbindungen über Unix-Sockets (ich bin nicht sicher, was das ist ...) und unterstützt nur TCP / IP-Verbindungen. Also keine Panik, wenn Sie von anderen Programmen aus keine Verbindung herstellen können.

Eonil
quelle
4
In der neuesten Dokumentation unter postgresapp.com/documentation/cli-tools.html ist der Pfad als/Applications/Postgres.app/Contents/Versions/latest/bin
Bryan Ash
Eigentlich entpuppt sich Kommentar als eine bessere Antwort :)
mythicalcoder
besserexport PATH=/Applications/Postgres.app/Contents/Versions/latest/bin/:$PATH
andilabs
Ich habe nachgeschaut, konnte aber keine Beziehung zwischen Heroku teamund der App finden. Können Sie mitteilen, wie sie verbunden sind?
Roee Gavirel
4

Laut der Installationsanleitung sollten sich nach Abschluss der Installation Verknüpfungen für StackBuilder, pgAdmin3 und psql im Anwendungsordner von Postgres befinden:

Sie finden auch zusätzliche Verknüpfungen, um pgAdmin, die psql-Befehlszeilenschnittstelle, auszuführen und auf die PostgreSQL-Dokumentation zuzugreifen.

Wenn es solche Verknüpfungen gibt, prüfen Sie, wohin die von psql zeigt.

Milen A. Radev
quelle
Danke, das hat auch geklappt. Ich hatte diese Dokumentation nicht gesehen, nur die Dokumentation über postgresql.org.
Jonas