2013-02-13 66 views
0

我總是不得不給出像sudo -u postgres psql這樣的命令才能登錄到Postgres控制檯。我有什麼,以便登錄到Postgres的像sudo psqlpsql我無法使用普通的psql來訪問Postgres

我的工作環境是Ubuntu Linux操作系統提前12.04

感謝。

+0

'哪個psql'的輸出是什麼? (在終端提示符下輸入。)你是否安裝了8.4和9.2? – 2013-02-13 11:46:49

+0

/usr/bin/psql我只安裝了8.4。 – Antony 2013-02-13 12:22:08

+0

你需要更詳細地描述你到底想要達到什麼目的,究竟是什麼問題。你想用哪個數據庫用戶登錄?什麼是你用來啓動'psql'的操作系統用戶? – 2013-02-13 12:42:56

回答

1

安裝後,只有postgres用戶能夠對數據庫服務器執行任何操作。安裝程序不能認爲我們想要打開對其他人的訪問權限。

給自己訪問作爲普通用戶,假設作爲一個例子,你的登錄名是joe(正常的,非priviledged用戶),你只需要創建一個相應的用戶和數據庫:

內PSQL作爲postgres管理員(與sudo -u postgres psql),問題:

CREATE USER joe; 
CREATE DATABASE joe OWNER joe; 

之後,在shell提示符下發出psql時,默認情況下將與您的用戶名連接到自己的數據庫。直到您需要發出其他管理員命令時,您不必再申請postgres

+0

感謝Daniel的幫助 – Antony 2013-02-14 09:47:43

0

請問

的psql -U PSQL

爲你工作?

編輯:

我以爲你會介意sudo

如果您的問題是輸入-U <user>,您還可以設置環境變量PGUSER。這也可以在shell的登錄腳本中完成,以便始終進行設置。

其他感興趣的環境變量可能是PGDATABASE,PGHOST,PGPORT

+0

很抱歉,不是 – Antony 2013-02-13 09:37:40

+0

@Antony也許你想讓我知道爲什麼不呢?如果您提供詳細信息,我只能提供幫助。 – sstn 2013-02-13 09:40:37

+0

我不喜歡以postgres登錄。相反,我寧願以登錄用戶身份登錄。 – Antony 2013-02-13 12:22:52

0

您的psql位於/ usr/bin/psql中。除非您的權限錯誤,否則您不應該使用sudo,或者除非您的鏈接錯誤。 (在PostgreSQL的後續版本中,/ usr/bin/psql是一個到可執行文件的符號鏈接,我不知道8.4版本是否是這樣的,在我的家用計算機上,它鏈接到/ usr/share/postgresql-common/pg_wrapper 。)

完整骨架語法PSQL是

psql -U username -h hostname -p portnumber database_name 

因此,舉例來說,當我連接到我的數據庫從無到有(名爲「沙箱」),我不喜歡這樣。

$ psql -U postgres -h localhost -p 5432 sandbox 

你會替代

  • 數據庫用戶名(必須已經存在,並且是不一定相同的網絡/計算機的用戶名),
  • 你的主機名(但「localhost」可能適用於PostgreSQL的本地安裝),
  • PostgreSQL正在偵聽的端口(但5432可能是正確的;這是默認設置)和
  • 您的數據庫名稱爲
+0

我想重新構建一個問題。有沒有什麼辦法可以使用我的用戶名登錄到Postgres,就像'sudo psql'一樣,默認情況下都是其他的。除此之外別名是一個答案。我們可以將我的用戶名添加到相應的組中嗎 – Antony 2013-02-13 12:55:16

相關問題