Postgresql -bash: psql: command not found
我已经安装了PostgreSQL,它可以正常工作。 但是,当我还原备份时,出现错误
1 2 3 4 | [root@server1 ~]# su postgres [postgres@server1 root]$ psql -f ALL.sql bash: psql: command NOT found [postgres@server1 root]$ |
我做错了什么?
1 | export PATH=/usr/pgsql-9.2/bin:$PATH |
程序可执行文件
因此,如果我们不想每次执行程序时都必须键入程序的完整路径,则必须将程序的路径添加到shell PATH变量中。
通常应将此行添加到shell启动脚本中,对于bash shell,它将位于文件
也许psql不在postgres用户的
可能是由于psql不在PATH中
1 2 | $ locate psql /usr/lib/postgresql/9.6/bin/psql |
然后在/ usr / bin中创建一个链接
1 | ln -s /usr/lib/postgresql/9.6/bin/psql /usr/bin/psql |
然后尝试执行psql它应该可以工作。
如果您在Fedora或CentOS上运行它,那么这对我有用(PostgreSQL 9.6):
在终端:
1 | $ sudo visudo -f /etc/sudoers |
修改以下内容:
1 | Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin |
至
1 | Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/pgsql-9.6/bin |
退出,然后:
1 2 3 4 5 | $ printenv PATH $ sudo su postgres $ psql |
要退出postgreSQL终端,您需要输入数字:
1 | $ \q |
来源:https://serverfault.com/questions/541847/why-doesnt-sudo-know-where-psql-is#comment623883_541880
问题是针对linux的,但我在Windows机器上的git bash也遇到了同样的问题。
我的pqsql安装在这里:
您可以将
如果您使用的是Postgres Mac应用程序(由Heroku开发)和Bundler,则可以直接在应用程序内部将pg_config添加到包中。
1 | bundle config build.pg --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.4/bin/pg_config |
...然后再次运行捆绑软件。
注意:首先使用以下命令检查版本。
1 | ls /Applications/Postgres.app/Contents/Versions/ |