web-dev-qa-db-fra.com

Postgresql -bash: psql: commande non trouvée

J'ai installé PostgreSQL et ça fonctionne bien. Cependant, lorsque je suis allé restaurer une sauvegarde, j'ai eu l'erreur -bash: psql: command not found:

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

Qu'est ce que j'ai mal fait?

26
Peter

peut-être que psql n'est pas dans la PATH de l'utilisateur postgres. Utilisez la commande Locate pour trouver où se trouve psql et assurez-vous que son chemin est dans PATH pour l'utilisateur postgres.

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

L'exécutable du programme psql est dans le répertoire /usr/pgsql-9.2/bin et ce répertoire n'est pas inclus dans le chemin par défaut. Nous devons donc indiquer à notre programme Shell (terminal) où trouver psql. Lorsque la plupart des packages sont installés, ils sont ajoutés à un chemin existant, tel que /usr/local/bin, mais pas à ce programme.

Nous devons donc ajouter le chemin du programme à la variable Shell PATH si nous ne voulons pas avoir à taper le chemin complet du programme à chaque fois que nous l'exécutons.

Cette ligne doit généralement être ajoutée au script de démarrage de la coque, qui pour le shell bash sera dans le fichier ~/.bashrc.

38
Pavel

Si vous l'exécutez sur Fedora ou CentOS, voici ce qui a fonctionné pour moi (PostgreSQL 9.6):

En terminal:

$ Sudo visudo -f /etc/sudoers

modifier le texte suivant de:

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

à 

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

sortir, puis:

$ printenv PATH

$ Sudo su postgres

$ psql

Pour quitter le terminal postgreSQL, vous devez entrer:

$ \q

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

1
aelkz

Si vous utilisez l'application Mac Postgres (de Heroku) et Bundler, vous pouvez ajouter le pg_config directement dans l'application, à votre offre.

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

... puis relancez bundle.

Remarque: vérifiez d'abord la version en utilisant les éléments suivants.

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

Cela peut être dû au fait que psql n'est pas dans PATH

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

Créez ensuite un lien dans/usr/bin

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

Ensuite, essayez d’exécuter psql pour que cela fonctionne. 

0
Chetan kapoor

La question est pour linux mais j'avais le même problème avec git bash sur ma machine Windows.

Mon pqsql est installé ici: C:\Program Files\PostgreSQL\10\bin\psql.exe

Vous pouvez ajouter l'emplacement de psql.exe à votre variable d'environnement Path, comme indiqué dans cette capture d'écran:

 add psql.exe to your Path environment variable

0
The Red Pea