【问题标题】:postgres 'psql' command is not recognized in windows environmentWindows 环境下无法识别 postgres 'psql' 命令
【发布时间】:2013-03-29 23:40:29
【问题描述】:

似乎我已经设置好了,我有我的 database.yml 使用 postgres,我可以使用 pgadmin III 连接数据库,但是当我尝试使用 psql 命令测试什么版本时,它说不是认可?知道我应该做什么吗?

我正在使用 Windows 并在 Ruby on Rails 中使用命令提示符。使用通过 EnterpriseDB 一键安装程序安装的 PostgreSQL 9.2。

【问题讨论】:

  • Pg 版本?您使用的是什么安装程序?Windows 版本?
  • @CraigRinger 这是企业版,下面你的回答是 9.2,但是当我在我的路径中添加 psql.exe 时它似乎仍然不起作用
  • “企业”?您是指 EnterpriseDB 版本吗?
  • @CraigRinger 是的。我做了windows一键安装包

标签: ruby-on-rails database postgresql


【解决方案1】:

假设您使用 EnterpriseDB 打包的 PostgreSQL“一键式”安装程序在 Windows 上安装了 PostgreSQL,psql 不会自动添加到 PATH。部分原因是当人们安装了多个版本的 PostgreSQL 时,将其添加到路径中可能会导致混淆。

您需要指定psql 的完整显式路径,例如:

"%PROGRAMFILES%\Postgresql\9.2\bin\psql.exe"

或将psql 添加到用户PATH 环境变量,参见例如this guide

【讨论】:

  • 我需要重新启动命令提示符吗?我的路径中有这些:C:\PostgresSQL\9.2\;C:\PostgresSQL\9.2\bin;C:\PostgresSQL\9.2\bin\psql.exe。我关闭了提示并再次打开它,但是当我尝试输入 psql 时它仍然无法识别?
  • 我把它放在我的系统环境中
  • @andrewliu 只有中间那个才有意义;您没有将路径直接设置为可执行文件,也没有设置为任意父目录,路径必须包含直接父目录。您通常应该修改用户路径而不是系统路径;如果用户不存在PATH 变量,则添加一个。要验证它是否正确关闭并重新打开cmd.exe,然后键入echo "%PATH%"。编辑您的问题以添加结果(复制并粘贴)。
  • @andrewliu 您是否将 PostgreSQL 安装到 C:\PostgreSQL ?这是一个不寻常且非默认的安装位置。你确定它不像往常一样在Program Files 中吗?
  • @andrewliu 不,您的PATH 必须是包含psql.exe 的文件夹,而不是psql.exe 本身。如果您使用绝对路径运行命令,例如(假设您的安装将PostgreSQL 拼写为PostgresSQL,就像您的cmets 一样)"C:\PostgresSQL\9.2\bin\psql.exe"。引号是必需的。你真的检查过路径吗?您的安装中是否有 9.2 中间路径?
【解决方案2】:

打开命令行

psql --version

如果上面一行没有显示psql版本,那么按照下面的步骤进行

(For Windows 7 OS)

Mycomputer->Properties->Advanced System Settings->EnvironmentVariables->Path->Edit->
(Donot remove any existing Path)

添加这个

;C:\Program Files\PostgreSQL\9.5\bin;C:\Program Files\PostgreSQL\9.5\lib

然后保存

重新打开命令提示符并重复

psql --version

C:\Users\rumi>psql --version

psql (PostgreSQL) 9.5.0

【讨论】:

  • 也适用于 Windows 10!虽然我无法将 pg 安装到“c:\program files”中。
  • 不是lib,应该是bin
【解决方案3】:

这是因为; 和你的 psql 路径之间不应该有空格,所以它应该像*****;C:\Program Files\PostgreSQL\9.2\bin\

如果******后面有空格;那么它将无法正常工作。您实际上可以在 cmd 提示符下键入%PATH%,然后查看您的环境变量和空间的样子。我为您尝试了这两种情况,第一种带有空格的错误与您提到的相同,而第二种没有空格则有效。

【讨论】:

    【解决方案4】:

    您需要在 PATH 环境变量中设置 bin 和 lib 路径,用分号分隔:

    %PROGRAMFILES%\Postgresql\9.2\bin;%PROGRAMFILES%\Postgresql\9.2\lib

    【讨论】:

    • 另外不要忘记重新打开 CMD。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-13
    • 1970-01-01
    • 2015-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-30
    相关资源
    最近更新 更多