51

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

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

4

7 に答える 7

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

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

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

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

于 2013-03-30T11:06:38.910 に答える
25

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

于 2011-07-22T12:37:41.693 に答える
10

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 を実行してみてください。

于 2018-11-27T20:48:25.370 に答える
5

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_541880

于 2017-11-25T14:20:22.090 に答える
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/
于 2015-02-23T22:06:32.170 に答える
1

PostgreSQL がインストールされているかどうかを確認します。

そうでない場合は、このコマンドを使用して ubuntu でも同じことができます。

sudo apt update
sudo apt install postgresql postgresql-contrib
于 2021-06-03T10:33:18.320 に答える