使用 Cloud SQL Proxy 連結 psql 用戶端

這個頁面說明如何使用 Cloud SQL Proxy,而非透過 IP 連線,將 psql 用戶端連線至您的 Cloud SQL 執行個體。

如需有關使用 IP 將 psql 用戶端連線至 Cloud SQL 執行個體的資訊,請參閱使用 IP 位址連結 psql 用戶端的說明。

如要進一步瞭解 Proxy 的運作方式,請參閱關於 Cloud SQL Proxy 一文。

事前準備

在您能夠將 psql 連線至 Cloud SQL 執行個體之前,您必須具備以下條件:

連線 psql 用戶端

使用 Proxy 將 psql 連線至 Cloud SQL 執行個體涉及下列步驟:

  1. 啟用 Cloud SQL API
  2. 安裝 Proxy
  3. 建立服務帳戶
  4. 啟動 Proxy
  5. 啟動 psql 工作階段

1.啟用 API

啟用Cloud SQL Admin API。

啟用 API

2.安裝 Proxy

Linux 64 位元

  1. 下載 Proxy:
    wget https://dl.google.com/cloudsql/cloud_sql_proxy.linux.amd64 -O cloud_sql_proxy
    
  2. 將 Proxy 設定為可執行:
    chmod +x cloud_sql_proxy
    

Linux 32 位元

  1. 下載 Proxy:
    wget https://dl.google.com/cloudsql/cloud_sql_proxy.linux.386 -O cloud_sql_proxy
    
  2. 將 Proxy 設定為可執行:
    chmod +x cloud_sql_proxy
    

macOS 64 位元

  1. 下載 Proxy:
    curl -o cloud_sql_proxy https://dl.google.com/cloudsql/cloud_sql_proxy.darwin.amd64
    
  2. 將 Proxy 設定為可執行:
    chmod +x cloud_sql_proxy
    

macOS 32 位元

  1. 下載 Proxy:
    curl -o cloud_sql_proxy https://dl.google.com/cloudsql/cloud_sql_proxy.darwin.386
    
  2. 將 Proxy 設定為可執行:
    chmod +x cloud_sql_proxy
    

Windows 64 位元

https://dl.google.com/cloudsql/cloud_sql_proxy_x64.exe 上按一下滑鼠右鍵,然後選取 [另存連結為] 下載 Proxy。將檔案重新命名為 cloud_sql_proxy.exe

Windows 32 位元

https://dl.google.com/cloudsql/cloud_sql_proxy_x86.exe 上按一下滑鼠右鍵,然後選取 [另存連結為] 下載 Proxy。將檔案重新命名為 cloud_sql_proxy.exe
如果此處未列出您的作業系統,您也可以從原始碼編譯 Proxy

3. 建立服務帳戶

當您使用 Proxy 連線時,Proxy 需要透過 Google Cloud Platform 進行驗證。您可以使用 Cloud SDK 憑證進行驗證,也可以為 Proxy 提供您建立的服務帳戶的本機金鑰檔案路徑 (建議用於實際工作環境執行個體)。如果您正在使用 Cloud SDK 憑證,可以略過此步驟。

如需進一步瞭解服務帳戶,請參閱 Google Cloud Platform 驗證指南

  1. 前往 Google Cloud Platform 主控台的「Service accounts」(服務帳戶) 頁面。

    前往「Service accounts」(服務帳戶) 頁面

  2. 視需要選取包含您的 Cloud SQL 執行個體的專案。
  3. 按一下 [Create service account] (建立服務帳戶)
  4. 在「建立服務帳戶」對話方塊中,提供服務帳戶的描述性名稱。
  5. 在「Role」(角色) 部分,選取下列其中一個角色:
    • Cloud SQL > Cloud SQL 用戶端
    • Cloud SQL > Cloud SQL 編輯者
    • Cloud SQL > Cloud SQL 管理員

    或者,您可以選取 [Project] (專案) > [Editor] (編輯者) 來使用原始編輯者角色,但編輯者角色包含跨 Google Cloud Platform 的權限。

    如果您沒有看到這些角色,即表示您的 Google Cloud Platform 使用者可能沒有 resourcemanager.projects.setIamPolicy 權限。 您可以前往 Google Cloud Platform 主控台的 IAM 頁面,然後搜尋您的使用者 ID,藉以檢查您的權限。

  6. 將「服務帳戶 ID」變更為您可以辨識的唯一值,使您日後能夠在有需要的情況下輕鬆找到這個服務帳戶。
  7. 按一下 [Furnish a new private key] (提供一組新的私密金鑰)
  8. 預設金鑰類型為 JSON,這是要使用的正確值。
  9. 按一下 [Create] (建立)

    私密金鑰檔案就會下載到您的機器。您可以將它移到其他位置。請保證金鑰檔案的安全。

4. 啟動 Proxy

依據您使用的語言和環境,您可以使用 TCP 通訊端或 Unix 通訊端啟動 Proxy。

TCP 通訊端

  1. 從「Instance details」(執行個體詳細資料) 頁面複製您的執行個體連線名稱。

    例如:myproject:us-central1:myinstance

  2. 如果您使用服務帳戶來驗證 Proxy,請記下您在建立服務帳戶時建立的私密金鑰檔案的用戶端機器位置。
  3. 啟動 Proxy。

    下列為一些可能使用的 Proxy 叫用字串:

    • 使用 Cloud SDK 驗證:
      ./cloud_sql_proxy -instances=<INSTANCE_CONNECTION_NAME>=tcp:5432
      
      不能指定使用中的通訊埠,例如本機資料庫伺服器正在使用的通訊埠。
    • 使用服務帳戶並明確指定執行個體 (建議用於實際工作環境):
      ./cloud_sql_proxy -instances=<INSTANCE_CONNECTION_NAME>=tcp:5432 \
                        -credential_file=<PATH_TO_KEY_FILE> &
      

    如要進一步瞭解 Proxy 選項,請參閱驗證 Proxy 的選項指定執行個體的選項

Unix 通訊端

  1. 如果您要明確指定執行個體,請從「執行個體詳細資料」頁面複製執行個體連線名稱。
  2. 建立 Proxy 通訊端運作的目錄:
    sudo mkdir /cloudsql; sudo chmod 777 /cloudsql
  3. 如果您使用服務帳戶來驗證 Proxy,請記下您在建立服務帳戶時建立的私密金鑰檔案的用戶端機器位置。
  4. 開啟新的終端機視窗並啟動 Proxy。

    下列為一些可能使用的 Proxy 叫用字串:

    • 使用服務帳戶並明確指定執行個體 (建議用於實際工作環境):
      ./cloud_sql_proxy -dir=/cloudsql -instances=<INSTANCE_CONNECTION_NAME> \
                        -credential_file=<PATH_TO_KEY_FILE> &
    • 使用 Cloud SDK 驗證及自動探索執行個體功能:
      ./cloud_sql_proxy -dir=/cloudsql &

    建議您在 Proxy 本身的終端機上啟動 Proxy。如此一來,您可以監控 Proxy 的輸出,而不會與其他程式的輸出混在一起。

    如要進一步瞭解 Proxy 選項,請參閱驗證 Proxy 的選項指定執行個體的選項

5. 啟動用戶端工作階段

您已安裝並啟動 Proxy,現在可以使用 Proxy 啟動 psql 工作階段。每當您要使用 psql 用戶端連線至 Cloud SQL 執行個體時,便可以使用這個指令。

您使用的連線字串取決於您是使用 TCP 通訊端還是 UNIX 通訊端啟動 Proxy。

TCP 通訊端

  1. 啟動 psql 用戶端:
    psql "host=127.0.0.1 sslmode=disable dbname=<DB_NAME> user=<USER_NAME>"
    

    即使 sslmode 參數設定為 disable,Proxy 也會提供加密的連線。

    當您使用 TCP 通訊端連線時,可透過 127.0.0.1 存取 Proxy。

  2. 輸入密碼。
  3. 您應該會看到 psql 提示。

Unix 通訊端

  1. 啟動 psql 用戶端:
    psql "sslmode=disable host=/cloudsql/<INSTANCE_CONNECTION_NAME> user=<USERNAME>"
    

    即使 sslmode 參數設定為 disable,Proxy 也會提供加密的連線。

  2. 輸入密碼。
  3. 您應該會看到 psql 提示。

需要協助嗎?如需疑難排解 Proxy 的說明,請參閱疑難排解 Cloud SQL Proxy 連線一節。 或者,請參閱我們的 Cloud SQL 支援頁面

後續步驟

本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
PostgreSQL 適用的 Cloud SQL