psql - 为什么我无法运行 "psql"命令?

标签 psql

我下载了 psql 并尝试运行它,但没有成功。它显示:

ubuntu@ip-172-31-17-155:~$ psql
-bash: /usr/bin/psql: No such file or directory

但是我使用locate来搜索psql它是否存在:

ubuntu@ip-172-31-17-155:~$ locate psql
/etc/alternatives/psql.1.gz
/usr/bin/psql
/usr/lib/postgresql/9.3/bin/psql
/usr/lib/x86_64-linux-gnu/odbc/libodbcpsqlS.so
/usr/share/bash-completion/completions/psql
/usr/share/man/man1/psql.1.gz
/usr/share/postgresql/9.3/psqlrc.sample
/usr/share/postgresql/9.3/man/man1/psql.1.gz
/var/lib/dpkg/alternatives/psql.1.gz
/var/lib/postgresql/.psql_history

这是什么原因呢?

最佳答案

这看起来是由 Bash 的路径解析缓存引起的。您可以通过运行来测试该理论:

 type psql

如果它返回psql is hashed (/usr/bin/psql),那么这确实是我们的问题。运行:

 hash -d psql

要清除该缓存,然后再次尝试 psql

编辑:我从 https://unix.stackexchange.com/questions/5609/how-do-i-clear-bashs-cache-of-paths-to-executables 获得了上述命令

关于psql - 为什么我无法运行 "psql"命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31644852/

相关文章:

sql - shell脚本中的psql循环

json - psql在字符串中插入带有双引号的json

postgresql - Psql输出到列别名以数字开头的文件

macos - 导入数据库转储— PSQL

postgresql - 在 psql 中定义多行字符串

postgresql - 是否可以在角色列表中包含时区?

mysql - 获取测试运行的计数及其开始时间

python - 在psql中使用将相关数据插入到两个表中

postgresql - 以 postgres 身份登录,但收到错误 createuser : creation of new role failed: ERROR: must be superuser to create superusers

php - Response 内容必须是实现 __toString() 的字符串或对象,移动到 psql 后给出的 "boolean"