2014-10-31 74 views
5

我想通過Emacs使用sql-mode連接到PostgreSQL數據庫。 我啓動Emacs,命令M-x sql-postgres,它會提示輸入用戶, 數據庫和服務器,但不提供密碼。空緩衝區打開 和任何我寫的,我得到:Emacs,SQL模式,Postgresql和輸入密碼

the Password for user james: 
psql: FATAL: password authentication failed for user "james" 

我可以登錄使用PSQL,雖然。我在Linux Antergos中運行GNU Emacs 24.4.1,PostgreSQL是9.3.5。

謝謝..

回答

4

Kevin's answer提供了一個交互式解決方案。

否則,您必須使用非交互式身份驗證方法(例如.pgpass文件)。


我的原始(和不正確)的建議是,以使在M-Xcustomize-optionRETsql-postgres-login-paramsRET 「密碼」 選項。

sql-*-login-params變量(和關聯的自定義小部件)通用於所有數據庫類型;但並非所有這些選項都適用於所有數據庫。

適用時,密碼由Emacs讀取,然後在命令行中使用。 psql不允許將密碼作爲命令的一部分提供,但是,因此Emacs無法在此處使用此方法。這就是爲什麼postgres登錄參數禁用密碼選項的原因。

+0

我得到** [不匹配]​​ **。 – 2014-11-05 08:39:19

+0

對不起,不清楚。沒有匹配'sql-postgres-login-params'。 – 2014-11-05 09:21:50

+0

從Emacs 24.1開始提供。確保首先實際加載庫(例如調用'M-x sql-postgres'),否則Emacs不會知道它。 – phils 2014-11-05 09:25:14

3

我暫時解決了這個創造在哪裏存儲我的連接憑據.pgpass文件。我對此感到不舒服,並希望在登錄時需要輸入密碼的解決方案。

1

我也有這個問題。如果你去空緩衝區&點擊進入,你有密碼提示嗎?我這樣做,當輸入密碼時,模式工作得很好。

7

如果有其他人來找我通過調用send-invisible並輸入我的密碼來解決這個問題,在sql-postgres命令完成後。 Emacs版本24.5.1。

  1. 發起的Postgres連接
  2. 在空白屏幕M-X發送隱形
  3. 類型的密碼。
  4. 利潤。