Postgresql -bash: psql: команда не найдена - PullRequest
29 голосов
/ 22 июля 2011

Я установил PostgreSQL, и он работает нормально.Однако, когда я пошел восстановить резервную копию, я получил ошибку -bash: psql: command not found:

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

Что я сделал не так?

Ответы [ 6 ]

40 голосов
/ 30 марта 2013
export PATH=/usr/pgsql-9.2/bin:$PATH

Исполняемый файл программы psql находится в каталоге /usr/pgsql-9.2/bin, и этот каталог по умолчанию не включен в путь, поэтому мы должны сообщить нашей программе оболочки (терминала), где найти psql.Когда большинство пакетов установлено, они добавляются к существующему пути, например /usr/local/bin, но не к этой программе.

Поэтому мы должны добавить путь к программе в переменную PATH оболочки, если не хотимПри каждом запуске мы должны вводить полный путь к программе.

Эта строка обычно должна добавляться в сценарий запуска оболочки, который для оболочки bash будет находиться в файле ~/.bashrc.

19 голосов
/ 22 июля 2011

возможно, psql не входит в PATH пользователя postgres.Используйте команду locate , чтобы найти, где находится psql, и убедиться, что его путь находится в PATH для пользователя postgres.

2 голосов
/ 25 ноября 2017

Если вы используете его на Fedora или CentOS , это то, что у меня работает (PostgreSQL 9.6):

В терминале:

$ sudo visudo -f /etc/sudoers

измените следующий текст с:

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

на

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

exit, затем:

$ printenv PATH

$ sudo su postgres

$ psql

Для выхода из терминала postgreSQL вам необходимона цифру:

$ \q

Источник: https://serverfault.com/questions/541847/why-doesnt-sudo-know-where-psql-is#comment623883_541880

1 голос
/ 27 ноября 2018

Это может быть из-за psql не в PATH

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

Затем создайте ссылку в / usr / bin

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

Затем попробуйте выполнить psql, это должно сработать.

1 голос
/ 17 июля 2018

Вопрос касается linux, но у меня была та же проблема с git bash на моей машине с Windows.

Мой pqsql установлен здесь: C:\Program Files\PostgreSQL\10\bin\psql.exe

Вы можете добавить местоположение psql.exe в переменную среды Path, как показано на снимке экрана:

add psql.exe to your Path environment variable

1 голос
/ 24 февраля 2015

Если вы используете приложение Postgres Mac (от Heroku) и Bundler, вы можете добавить pg_config прямо в приложение к вашему пакету.

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

... и снова запустить пакет.

Примечание: сначала проверьте версию, используя следующее.

ls /Applications/Postgres.app/Contents/Versions/
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...