使用 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 為何) 頁面查看用戶端機器的 IP 位址。
  2. 複製該 IP 位址。
  3. 前往 Google Cloud 控制台的「Cloud SQL Instances」頁面。

    前往 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 連線至 Cloud SQL 執行個體,也不支援使用 SSL/TLS。如要透過加密連線,請在 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