Linux 未找到Postgresql-bash:psql:命令

Linux 未找到Postgresql-bash:psql:命令,linux,postgresql,psql,Linux,Postgresql,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]$ 我做错了什么?也许psql不在postgres用户的路径中。使用该命令查找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]$ 

我做错了什么?

也许psql不在postgres用户的
路径中。使用该命令查找psql所在的位置,并确保其路径位于postgres用户的
路径中

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

中。如果您使用的是Postgres Mac应用程序(由Heroku编写)和Bundler,您可以直接在应用程序内部将pg_配置添加到捆绑包中

bundle config build.pg --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.4/bin/pg_config
…然后再次运行bundle

注意:首先使用以下命令检查版本

ls /Applications/Postgres.app/Contents/Versions/

如果您在Fedora或CentOS上运行它,这就是我的工作原理(PostgreSQL 9.6):

在终端:

$ sudo visudo -f /etc/sudoers
从中修改以下文本:

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

退出,然后:

$ printenv PATH

$ sudo su postgres

$ psql
要退出postgreSQL终端,您需要:

$ \q

来源:

这个问题是针对linux的,但我在Windows机器上的git bash也有同样的问题

我的pqsql安装在此处:
C:\ProgramFiles\PostgreSQL\10\bin\psql.exe

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

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

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

psql -U postgres

这里的
postgres
是用户名。如果没有
-U
,它将在用户中拾取windows日志。

这可能是由于psql不在路径中

$ locate psql
/usr/lib/postgresql/9.6/bin/psql
然后在/usr/bin中创建一个链接

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

然后尝试执行psql,它应该可以工作

检查是否安装了PostgreSQL

如果没有,您可以在ubuntu中使用此命令执行相同的操作

sudo apt update
sudo apt install postgresql postgresql-contrib

当在同一台计算机上安装PostgreSQL 9.2(package
PostgreSQL-server92
)后意外安装PostgreSQL 8.4(package
PostgreSQL server
)时,CentOS上可能会发生这种情况。如果删除PostgreSQL 8.4,yum还会从路径中删除postgres bin目录。^^^这是!谢谢。你愿意扩大这一评论吗?它似乎很受欢迎,但如果您使用Mac并安装了Postgres.app,那么它可能会更有用,并提供额外的信息(例如,上面的行去哪里,它们做什么?),然后``export PATH=/Applications/Postgres.app/Contents/Versions/latest/bin:$PATH``或```export PATH=/Applications/Postgres.app/Contents/Versions/9.6/bin:$PATH```@非常感谢!如果你仍然看到它不工作,那么关闭cmd/bash并打开cmd/bash的一个新窗口n(不是选项卡)。
sudo apt update
sudo apt install postgresql postgresql-contrib