IBM Cloud Docs
使用 psql 進行連接

使用 psql 進行連接

使用 psql 來直接互動及監視在資料庫內建立的資料結構。psql 也適用於測試及監視查詢和效能、安裝及修改 Script,以及其他管理活動。

admin 使用者隨附 PostgreSQL 預設角色 pg_monitor,容許存取 PostgreSQL 監視視圖及函數。 依預設,admin 使用者對其他使用者所建立的物件沒有許可權。

您必須先設定 admin 密碼,然後才能使用它來連接至資料庫。 如需相關資訊,請參閱 設定管理者密碼 頁面。

安裝 psql

要使用 psql,需要在本機系統安裝 PostgreSQL 用戶端工具。 它們可以隨從 postgresql.org提供的完整 PostgreSQL 套件一起安裝,作為 作業系統的套件管理程式中的套件

如需 psql 的相關資訊,請參閱 PostgreSQL 說明文件

安裝 PostgreSQL 工具的大部分指示都假設您也想要安裝資料庫。 如果您處理的使用者無法存取雲端或遠端伺服器上的 PostgreSQL,這是合理的假設。

以下是在macOS, Linux和 Windows 上將 psql 安裝為獨立工具的步驟。

在具有 Homebrew 的 macOS 上安裝 psql

建議將 Homebrew 作為 macOS的套件管理程式。 使用 Homebrew,您可以安裝許多應用程式,通常具有 /usr/local/bin 中可用的程式。 PostgreSQL 用戶端工具的 Homebrew 套件是 libpq 套件。 Brew 可讓您輕鬆安裝:

brew install libpq

不過有一個小的 catch: libpq 不會將本身安裝在 /usr/local/bin 目錄中。 若要實現此目標,您需要執行:

brew link --force libpq

這會將所有工具 (不僅僅是 libpq) 符號鏈結至 /usr/local/bin 目錄 (指向另一個檔案或資料夾的檔案)。

在Ubuntu上安裝 postgresql-client

與macOS,不同,Linux系統內建了一個套件管理器。 對於Ubuntu (和基於Debian發行版)來說,這就是 apt 命令。 PostgreSQL客戶端分佈在對應名稱的 postgresql-client 中。 要安裝它,請執行以下命令:

sudo apt-get install postgresql-client

這將安裝PostgreSQL客戶端。

在Red Hat Enterprise Linux上安裝 postgresql-client

對於Red Hat Enterprise Linux (或通常編寫的 RHEL),比Ubuntu需要更多的設定。 對於 RHEL,套件管理器是 Yum

首先,您需要將 Yum 指向PostgreSQL儲存庫,如下所示:

sudo yum install https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-redhat10-10-2.noarch.rpm

Yum 到,並將自己設定為使用該套件套件庫。URL 完成後,您可以按名稱新增套件:

sudo yum install postgresql15

此命令僅安裝客戶端軟體包。 如果您想知道在哪裡可以找到該資源庫 URL,請前往 Linux Downloads ( Red Hat Family),在那裡您可以找到一個表格,讓您選擇 PostgreSQL 版本、平台和架構,它會針對該 Red Hat 變體提供適當的指示 - 這包括 CentOS, Scientific Linux,以及 Oracle Enterprise Linux。 它還包括 Fedora。 Fedora 的預設套件庫已有 PostgreSQL 客戶端可供使用。 因此,對於 Fedora 27 和 28 及更新版本,請從終端機安裝 PostgreSQL 用戶端程式:

sudo dnf install postgresql.x86_64

在 Windows 上安裝 psql

對於 Windows,請使用 Enterprise DB 中的PostgreSQL安裝程式。 它是 Windows 上PostgreSQL的完整安裝包,但您可以將其設定為僅安裝 psql 等命令列工具。 選擇您的PostgreSQL和 Windows 版本。 下載可執行檔後,運行它。 如果不需要安裝伺服器,則僅選擇*「命令列工具」*。

安裝後,您可以設定 Windows 環境變量,以便可以在命令提示字元中使用 psql 用戶端。 前往控制台>系統和安全性>系統,然後選擇* 進階系統設定*。 從那裡您會看到一個名為 “系統屬性” 的方塊。 選取環境變數。 將出現一個窗口,其中包含兩組環境變數。 在頂部標記為「使用者變數…」的集中,選擇 PATH 條目,然後按一下 「編輯」 按鈕。 將出現一個編輯視窗。 按一下*「新建」*並新增 psql 客戶端的路徑。 您的路徑取決於PostgreSQL安裝位置,但通常是:

C:\Program Files\PostgreSQL\<POSTGRES_VERSION>\bin

之後,按一下 「確定」 幾次即可返回桌面。 啟動一個新的命令提示符,您應該能夠運行 psql

psql 連線字串

連線字串會顯示在部署 _概觀_的 端點 畫面中,也可以從 Cloud Databases CLI 外掛程式API 中擷取。

psql 建立連線所需的資訊位於連線字串的 "cli" 區段中。 表格包含參照的明細。

psql/cli 連接訊息
欄位名稱 索引 說明
Bin 建議使用二進位來建立連線; 在此情況下為 psql
Composed 格式化指令,用於建立與部署的連線。 該指令結合 Bin 執行檔、Environment 變數設定,並使用 Arguments 作為指令行參數。
Environment 您設定為環境變數的索引鍵/值清單。
Arguments 0... 作為引數傳遞至 Bin 欄位中所顯示指令的資訊。
Certificate Base64 服務專屬憑證,用來確認應用程式是否連線到適當的伺服器。 它是 base64 編碼。
Certificate 名稱 服務專屬憑證的分配名稱。
Type 使用此連線資訊的套件類型; 在此情況下為 cli
  • 0... 表示陣列中可能有一或多個這些項目。

建立指令行用戶端連線

在建立指令行用戶端連線之前,請確定您已為部署 設定管理密碼

ibmcloud cdb deployment-connections 指令會處理建立指令行用戶端連線所涉及的所有項目。 例如,若要連接至名為 "example-postgres" 的部署,請使用下列指令:

ibmcloud cdb deployment-connections <INSTANCE_NAME_OR_CRN> --start

ibmcloud cdb cxn <INSTANCE_NAME_OR_CRN> -s

該指令會提示輸入管理者密碼,然後執行 psql 指令行用戶端以連接至資料庫。

如果您尚未安裝 Cloud Databases CLI 外掛程式,請使用 psql 來連接至 PostgreSQL 資料庫,為它提供 "composed" 連線字串。 它提供環境變數 PGPASSWORDPGSSLROOTCERT。 將 PGPASSWORD 設為管理員密碼,將 PGSSLROOTCERT 設為服務專屬憑證的路徑或檔案名稱。

PGPASSWORD=$PASSWORD PGSSLROOTCERT=0b22f14b-7ba2-11e8-b8e9-568642342d40 psql 'host=4a8148fa-3806-4f9c-b3fc-6467f11b13bd.8f7bfd7f3faa4218aec56e069eb46187.databases.appdomain.cloud port=32325 dbname=ibmclouddb user=admin sslmode=verify-full'

使用服務專屬憑證

  1. 端點 畫面或連線資訊的 Base64 欄位複製憑證資訊。
  2. 必要的話,將 Base64 字串解碼為文字。
  3. 將憑證儲存至檔案。 (您可以使用所提供的「名稱」或您自己的檔名)。
  4. 提供 ROOTCERT 環境變數的憑證路徑。

您可以使用下列指令,使用 CLI 外掛程式來顯示部署的已解碼憑證:

ibmcloud cdb deployment-cacert <INSTANCE_NAME_OR_CRN>

此指令會將 base64 解碼為文字。 將指令輸出複製並儲存至檔案,並提供檔案的 ROOTCERT 環境變數路徑。

另一個選項是將 &sslrootcert=/path/to/cert 新增至連線字串,例如:

postgres://$USERNAME:$PASSWORD@6eb96148-90bc-49a0-a5a4-dc2b53334653.btdl8mld0r95fevivv30.databases.appdomain.cloud:32109/ibmclouddb?sslmode=verify-full&sslrootcert=/path/to/cert