it-swarm.com.de

Postgresql -bash: psql: Befehl nicht gefunden

Ich habe PostgreSQL installiert und es funktioniert in Ordnung. Als ich jedoch eine Sicherung wiederherstellen wollte, bekam ich den Fehler -bash: psql: command not found:

 [[email protected] ~]# su postgres
 [[email protected] root]$ psql -f all.sql
 bash: psql: command not found
 [[email protected] root]$ 

Was habe ich falsch gemacht?

26
Peter

vielleicht ist psql nicht in der PATH des postgres-Benutzers. Verwenden Sie den Befehl locate , um herauszufinden, wo sich psql befindet, und stellen Sie sicher, dass sich der Pfad in PATH für den postgres-Benutzer befindet.

16
marto
export PATH=/usr/pgsql-9.2/bin:$PATH

Die Programmdatei psql befindet sich im Verzeichnis /usr/pgsql-9.2/bin. Dieses Verzeichnis ist standardmäßig nicht im Pfad enthalten. Daher müssen wir unserem Shell (terminal) -Programm mitteilen, wo es psql gibt. Wenn die meisten Pakete installiert sind, werden sie zu einem vorhandenen Pfad hinzugefügt, z. B. /usr/local/bin, jedoch nicht zu diesem Programm.

Wir müssen also den Pfad des Programms zur Shell PATH-Variablen hinzufügen, wenn wir nicht bei jeder Ausführung den vollständigen Pfad zum Programm eingeben müssen.

Diese Zeile sollte normalerweise zum Shell-Startskript hinzugefügt werden, das sich für die Bash-Shell in der Datei ~/.bashrc befindet.

38
Pavel

Falls Sie es unter Fedora oder CentOS ausführen, funktionierte dies bei mir (PostgreSQL 9.6):

Im Terminal:

$ Sudo visudo -f /etc/sudoers

folgenden Text ändern von:

Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/bin

zu 

Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/pgsql-9.6/bin

ausfahrt, dann:

$ printenv PATH

$ Sudo su postgres

$ psql

Um das postgreSQL-Terminal zu beenden, müssen Sie folgende Ziffern eingeben:

$ \q

Quelle: https://serverfault.com/questions/541847/why-doesnt-Sudo-know-where-psql-is#comment623883_541880

1
aelkz

Wenn Sie die Postgres Mac-App (von Heroku) und Bundler verwenden, können Sie die pg_config direkt in der App zu Ihrem Bundle hinzufügen.

bundle config build.pg --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.4/bin/pg_config

... und dann erneut Bundle ausführen.

Hinweis: Überprüfen Sie zuerst die Version, indem Sie Folgendes verwenden.

ls /Applications/Postgres.app/Contents/Versions/
1
Daniel Morris

Es kann daran liegen, dass sich psql nicht in PATH befindet

$ locate psql
/usr/lib/postgresql/9.6/bin/psql

Dann erstellen Sie einen Link in/usr/bin

ln -s /usr/lib/postgresql/9.6/bin/psql /usr/bin/psql

Versuchen Sie dann, psql auszuführen, damit es funktioniert. 

0
Chetan kapoor

Die Frage ist für Linux, aber ich hatte das gleiche Problem mit git bash auf meinem Windows-Rechner.

Mein pqsql ist hier installiert: C:\Program Files\PostgreSQL\10\bin\psql.exe

Sie können den Pfad von psql.exe zu Ihrer Path-Umgebungsvariablen hinzufügen, wie in diesem Screenshot gezeigt:

 add psql.exe to your Path environment variable

0
The Red Pea