2013-04-08 102 views
17

似乎我已經設置好了,我有我的database.yml使用postgres,並且我可以用pgadmin III連接數據庫,但是當我嘗試使用psql命令時測試什麼版本,它說這是不被承認?任何想法我應該做什麼?在Windows環境下無法識別postgres的'psql'命令

我使用的是Windows,並在Ruby on Rails上使用命令提示符。使用與EnterpriseDB一鍵安裝程序一起安裝的PostgreSQL 9.2。

+0

PG的版本?你使用什麼安裝程序?Windows版本? – 2013-04-08 01:30:52

+0

@CraigRinger它是企業版本,9.2以下的答案,但它似乎仍然不起作用,當我在我的路徑 – hellomello 2013-04-08 01:41:58

+0

「企業」中添加psql.exe?你的意思是EnterpriseDB版本? – 2013-04-08 02:30:17

回答

39

假設您在Windows上安裝PostgreSQL並使用EnterpriseDB打包的PostgreSQL「一鍵式」安裝程序,psql不會自動添加到PATH。這部分是因爲當人們安裝了多個版本的PostgreSQL時,將其添加到路徑中可能會引起混淆。

你需要指定psql完整明確的路徑,例如:

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

或添加psql用戶PATH環境變量,例如參見this guide

+0

我是否需要重新啓動我的命令提示符?我在路徑中有這些:'C:\ PostgresSQL \ 9.2 \; C:\ PostgresSQL \ 9.2 \ bin; C:\ PostgresSQL \ 9.2 \ bin \ psql.exe'。我關閉了提示符並再次打開它,但是當我嘗試輸入'psql'時仍然無法識別? – hellomello 2013-04-08 01:38:48

+2

我把它放在我的系統環境中 – hellomello 2013-04-08 01:41:04

+1

@andrewliu只有中間的一個纔有意義;您不直接將路徑設置爲可執行文件,也不將其設置爲任意父目錄,則該路徑必須包含直接的父目錄。通常應該修改用戶路徑而不是系統路徑;如果用戶不存在'PATH'變量,則添加一個。要驗證它是否正確關閉並重新打開'cmd.exe',然後鍵入'echo「%PATH%」'。編輯您的問題以添加結果(複製並粘貼它)。 – 2013-04-08 02:35:12

3

這是因爲在;和你的psql路徑之間不應該有空格,所以它應該像*****;C:\Program Files\PostgreSQL\9.2\bin\

如果在******之後有空格,那麼它將無法工作。你可以在你的cmd提示符下輸入%PATH%,看看你的環境變量和空間是怎樣的。我爲你嘗試了兩種情況,第一種與空間有相同的錯誤,第二種沒有空間。

2

您需要同時設置垃圾桶,並在您的PATH環境變量用分號隔開的lib路徑:

%PROGRAMFILES%\ PostgreSQL的\ 9.2 \ BIN;%PROGRAMFILES%\ PostgreSQL的\ 9.2 \ lib中

+0

另外不要忘記重新打開CMD。 – 2015-12-21 20:19:53

5

打開命令行

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 
+0

也適用於Windows 10!雖然我無法將pg安裝到「c:\ program files」中。 – Pascal 2016-01-29 08:53:03

+0

感謝它在Windows 10上的工作。 – 2016-09-20 23:13:39