使用 psql 用戶端連線

您可以使用 PostgreSQL 指令列用戶端連線至 Cloud SQL。本頁說明如何將 psql 用戶端連線至 Cloud SQL 執行個體,無論這個用戶端是在您的本機用戶端機器、Compute Engine VM 或 Cloud Shell 中執行。

事前準備

如要使用 psql 用戶端連線至 Cloud SQL 執行個體,請先執行下列操作:

在本機機器或 Compute Engine VM 上使用 PostgreSQL 用戶端

使用 psql 用戶端連線至 Cloud SQL 執行個體,需要完成三個高層級任務:

  1. 安裝用戶端
  2. 設定 Cloud SQL 執行個體的存取權
  3. 連線至 Cloud SQL 執行個體

安裝用戶端

如要安裝 psql 用戶端,請按照下列步驟操作:

Debian/Ubuntu

從套件管理員安裝 psql 用戶端:

sudo apt-get update
sudo apt-get install postgresql-client

CentOS/RHEL

從套件管理員安裝 psql 用戶端:

sudo yum install postgresql

openSUSE

從套件管理員安裝 psql 用戶端:

sudo zypper install postgresql

其他平台

  1. PostgreSQL 下載頁面下載您平台適用的 PostgreSQL Core Distribution。
    Core Distribution 內含 psql 用戶端。
  2. 按照下載頁面上的指示安裝 PostgreSQL 資料庫。

設定 Cloud SQL 執行個體的存取權

如要設定執行個體的存取權,請按照下列步驟操作:

  1. 在用戶端機器或 Compute Engine VM 執行個體中,使用「What's my IP」查看用戶端機器的 IP 位址。
  2. 複製該 IP 位址。
  3. 前往 Google Cloud 控制台的「Cloud SQL 執行個體」頁面。

    前往 Cloud SQL 執行個體

  4. 如要開啟執行個體的「總覽」頁面,請按一下執行個體名稱。
  5. 在 SQL 導覽選單中選取「Connections」
  6. 選取「網路」分頁標籤。
  7. 在「Authorized networks」部分,按一下「Add network」,然後輸入用戶端安裝所在機器的 IP 位址。
  8. 按一下 [完成]。然後按一下頁面底部的「儲存」來儲存變更。
  9. 使用 SSL/TLS不加密 (不使用 SSL/TLS) 連線至執行個體。

不加密連線至 Cloud SQL 執行個體

如要讓您在不加密的情況下連線,執行個體必須將SSL 模式設為 ALLOW_UNENCRYPTED_AND_ENCRYPTED。在 Google Cloud 控制台中,等同的設定為「允許未加密的網路流量」

如要進一步瞭解執行個體的 SSL/TLS 設定,請參閱「設定 SSL/TLS 憑證」。

如要連線至執行個體,請按照下列步驟操作:

  1. 確認您已安裝用戶端,並設定執行個體的存取權
  2. 啟動 psql 用戶端:
    psql "sslmode=disable dbname=postgres user=postgres hostaddr=INSTANCE_IP_ADDRESS"
  3. 輸入密碼。
  4. 畫面上會顯示 psql 提示。

使用 SSL/TLS 連線至 Cloud SQL 執行個體

如要使用 SSL/TLS 和內建驗證機制連線至執行個體,請按照下列步驟操作:

  1. 啟動 psql 用戶端:
    psql "sslmode=require \
          hostaddr=INSTANCE_IP_ADDRESS \
          user=postgres dbname=DB_NAME"
       

    例如:

    psql "sslmode=require \
          hostaddr=203.12.34.56 \
          user=postgres dbname=postgres"
       

    您可能還想建立連線服務檔案,以便管理連線參數,尤其是當您連線至多個執行個體時。詳情請參閱 PostgreSQL 說明文件

  2. 輸入密碼。雖然 PostgreSQL 在使用 SSL/TLS 時支援不需密碼的連線,但 Cloud SQL 仍必須使用密碼,
  3. 您可以查看連線資訊中的密碼編碼,確認連線是否已加密:
    SSL connection (cipher: ECDHE-RSA-AES128-GCM-SHA256, bits: 128)
    

使用 SSL/TLS 和用戶端憑證驗證功能連線至 Cloud SQL 執行個體

如果 Cloud SQL 執行個體上的 ssl_mode 已設為 TRUSTED_CLIENT_CERTIFICATE_REQUIRED,您登入時也必須提供已驗證的用戶端身分。

如要使用 SSL/TLS 憑證搭配用戶端驗證連線,您需要:

  • client-cert.pem 檔案中的用戶端公用金鑰憑證。
  • client-key.pem 檔案中的用戶端私密金鑰。

此外,如要讓用戶端驗證伺服器身分以進行雙向驗證,請指定伺服器憑證 server-ca.pem

舉例來說,如要啟動 psql 用戶端,請執行下列操作:
   psql "sslmode=verify-ca sslrootcert=server-ca.pem \
      sslcert=client-cert.pem sslkey=client-key.pem \
      hostaddr=INSTANCE_IP_ADDRESS \
      user=postgres dbname=DB_NAME"
   

如果您沒有用戶端憑證和相應的私密金鑰,請 建立新的用戶端憑證

在 Cloud Shell 中使用用戶端

如要連線至 Cloud SQL 執行個體 (僅限公開 IP):

  1. 前往 Google Cloud 控制台。

    前往 Google Cloud 控制台

  2. 按一下工具列右側的 Cloud Shell 圖示

    Cloud Shell 需要幾分鐘的時間才能初始化。

  3. 在 Cloud Shell 提示中,使用內建用戶端連線至 Cloud SQL 執行個體:
    gcloud sql connect INSTANCE_ID \
    --user=postgres
  4. 請輸入您的密碼。

gcloud sql connect 指令不支援使用私人 IP 或 SSL/TLS 連線至 Cloud SQL 執行個體。如要使用加密連線,請在 Cloud Shell 中安裝並使用 Proxy:

  1. /home/USER 目錄中安裝 Proxy (Linux 64 位元)。
  2. 使用 gcloud CLI 驗證功能啟動 Proxy:

    ./cloud-sql-proxy INSTANCE_CONNECTION_NAME &

  3. 使用 TCP 連線連線至資料庫:

    psql -U USERNAME --host=127.0.0.1

後續步驟

歡迎試用

如果您未曾使用過 Google Cloud,歡迎建立帳戶,親自體驗實際使用 Cloud SQL 的成效。新客戶可以獲得價值 $300 美元的免費抵免額,可用於執行、測試及部署工作負載。

免費試用 Cloud SQL