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中,并且该目录默认不包含在路径中,所以我们必须告诉我们的shell(终端)程序在哪里找到psql。安装大多数软件包时,会将它们添加到现有路径,例如/usr/local/bin,但不会添加到此程序。

因此,如果我们不想在每次执行程序时都输入程序的完整路径,我们必须将程序的路径添加到 shell PATH 变量中。

此行通常应添加到 shell 启动脚本中,对于 bash shell,该脚本将位于文件~/.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

如果您在FedoraCentOS上运行它,这对我有用(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 回答
4

问题是针对 linux 的,但我在 Windows 机器上遇到了与 git bash 相同的问题。

我的 pqsql 安装在这里: C:\Program Files\PostgreSQL\10\bin\psql.exe

您可以将 的位置添加psql.exe到您的 Path 环境变量中,如下图所示:

将 psql.exe 添加到您的 Path 环境变量

更改上述内容后,请关闭所有cmd和/或bash窗口,然后重新打开它们(如@Ayush Shankar 评论中所述)

您可能需要使用以下命令更改默认日志记录用户。

psql -U postgres

postgres是用户名。如果没有-U,它将选择 windows 登录用户。

于 2018-07-17T02:30:30.340 回答
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 回答