2011-07-22 11 views
24

私はPostgreSQLをインストールしていますが正常に動作しています。私はバックアップを復元するために行ったときしかし、私はエラー-bash: psql: command not foundしまった:私が間違って何をPostgresql -bash:psql:コマンドが見つかりません

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

を行っていますか?

+3

これは、CentOSの上で発生する可能性がありますがPostgreSQL 9.2をインストールした後でPostgreSQL 8.4(パッケージ 'postgresql-server')を誤ってインストールします(パッケージ' postgresql-serve r92')を同じマシン上に作成します。 PostgreSQL 8.4を消去すると、yumはパスからpostgres binディレクトリも削除します。 –

+0

^^これ!ありがとうIain –

答えて

14

おそらくpsqlはpostgresユーザーのPATHにありません。 locateコマンドを使用して、psqlがどこにあるかを調べ、そのパスがpostgresユーザーのPATHにあることを確認します。

32
export PATH=/usr/pgsql-9.2/bin:$PATH 

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

プログラムを実行するたびに完全なパスを入力する必要がないようにするには、プログラムのパスをシェルPATH変数に追加する必要があります。

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

+3

このコメントを拡大しようか? – rainbowsorbet

+0

MacでPostgres.appをインストールした場合、 '' '(' '') export PATH = /アプリケーション/ Postgres.app/Contents/Versions/latest/bin:$ PATH '' ' または ' '' export PATH = /アプリケーション/ Postgres.app/Contents/Versions/9.6/bin:$ PATH '' '' –

1

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/ 
0

あなたは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 

へ:PostgreSQLのターミナルを終了し

$ printenv PATH 

$ sudo su postgres 

$ psql 

、あなたは桁に必要:

$ \q 

出典:あなたhttps://serverfault.com/questions/541847/why-doesnt-sudo-know-where-psql-is#comment623883_541880

関連する問題