web-dev-qa-db-ja.com

Postgresql -bash:psql:コマンドが見つかりません

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]$ 

私は何を間違えましたか?

31
Peter

おそらく、psqlはpostgresユーザーのPATHに含まれていません。 locate コマンドを使用して、psqlの場所を見つけ、postgresユーザーのPATHにそのパスがあることを確認します。

19
marto
_export PATH=/usr/pgsql-9.2/bin:$PATH
_

プログラムの実行可能ファイルpsqlはディレクトリ_/usr/pgsql-9.2/bin_にあり、そのディレクトリはデフォルトではパスに含まれていないため、シェル(ターミナル)プログラムにpsqlの場所を指定する必要があります。ほとんどのパッケージがインストールされると、_/usr/local/bin_などの既存のパスに追加されますが、このプログラムは追加されません。

したがって、プログラムを実行するたびに完全なパスを入力する必要がない場合は、プログラムのパスをShell PATH変数に追加する必要があります。

通常、この行はシェル起動スクリプトに追加する必要があります。bashシェルの場合は、_~/.bashrc_ファイルにあります。

40
Pavel

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

終了してから:

$ printenv PATH

$ Sudo su postgres

$ psql

PostgreSQLターミナルを終了するには、数字を入力する必要があります。

$ \q

ソース: https://serverfault.com/questions/541847/why-doesnt-Sudo-know-where-psql-is#comment623883_54188

2
aelkz

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を実行してみます。

2
Chetan kapoor

Postgres Macアプリ(Heroku製)とBundlerを使用している場合は、pg_configをアプリ内でバンドルに直接追加できます。

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

...もう一度bundleを実行します。

注:最初に以下を使用してバージョンを確認します。

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

質問はLinux向けですが、Windowsマシンのgit bashでも同じ問題がありました。

私のpqsqlはここにインストールされます:C:\Program Files\PostgreSQL\10\bin\psql.exe

このスクリーンショットに示すように、psql.exeの場所をPath環境変数に追加できます。

add psql.exe to your Path environment variable

1
The Red Pea