從 Compute Engine 連結 MySQL 用戶端

本頁說明如何使用安裝於 Compute Engine 執行個體上的 mysql 用戶端來連線至 Cloud SQL。

如要連線至第二代執行個體,您可以使用私人 IP、公開 IP 和 Cloud SQL Proxy 或 Proxy Docker 映像檔。

如要連線到第一代執行個體,您必須使用公開的 IPv4 位址。

事前準備

連線 Cloud SQL 執行個體之前,您必須具備執行個體的預設資料庫使用者 (根) 權限。

此工作不包含設定 Compute Engine 執行個體的指示。如果您需要建立及設定 Compute Engine 執行個體的說明,請參閱 Compute Engine 說明文件

使用私人 IP 連線

如要從 Compute Engine 執行個體使用私人 IP 連線到 Cloud SQL,您必須為環境設定私人服務存取權,並且必須將 Cloud SQL 執行個體設為使用私人 IP。Compute Engine 執行個體的所在地區必須與 Cloud SQL 執行個體相同,並且位於設定成私人連線的網路上。瞭解詳情

  1. 按照設定私人 IP 連線中的操作說明,將執行個體設為使用私人 IP。
  2. 開啟與 Compute Engine 執行個體的終端機連線。

    請根據執行個體的作業系統參考適當的指示:

  3. 若尚未在 Compute Engine 執行個體上安裝 mysql 用戶端,請在 Compute Engine 執行個體上安裝 mysql 用戶端。

    Debian/Ubuntu

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

    sudo apt-get update
    sudo apt-get install mysql-client
    

    CentOS/RHEL

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

    sudo yum install mysql
    

    openSUSE

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

    sudo zypper install mysql-client
    

    其他平台

    1. MySQL Community Server 下載頁面為您的平台下載 MySQL Community Server。
      Community Server 包含 MySQL 用戶端。
    2. 依照下載頁面上的指示安裝 Community Server。

    如要進一步瞭解安裝 MySQL 的相關資訊,請參閱 MySQL 參考手冊安裝及升級 MySQL

  4. 用 mysql 用戶端連線。
    mysql --host=[CLOUD_SQL_PRIVATE_IP_ADDR] --user=root --password
    

使用公開 IP 位址連線

  1. 如果 Compute Engine 執行個體還沒有靜態 IPv4 IP 位址,請為 Compute Engine 執行個體新增一個靜態 IPv4 IP 位址。 您無法使用 IPv6 連線 Compute Engine。如需瞭解新增靜態 IP 位址的相關資訊,請參閱 Compute Engine 說明文件中的保留新的靜態外部 IP 位址一文。
  2. 將 Compute Engine 執行個體的靜態 IP 位址授權為可以連線至 Cloud SQL 執行個體的網路。

    如需詳細資訊,請參閱設定 IP 連線存取權一文。

  3. 開啟與 Compute Engine 執行個體的終端機連線。

    請根據執行個體的作業系統參考適當的指示:

  4. 若尚未在 Compute Engine 執行個體上安裝 mysql 用戶端,請在 Compute Engine 執行個體上安裝 mysql 用戶端。

    Debian/Ubuntu

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

    sudo apt-get update
    sudo apt-get install mysql-client
    

    CentOS/RHEL

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

    sudo yum install mysql
    

    openSUSE

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

    sudo zypper install mysql-client
    

    其他平台

    1. MySQL Community Server 下載頁面為您的平台下載 MySQL Community Server。
      Community Server 包含 MySQL 用戶端。
    2. 依照下載頁面上的指示安裝 Community Server。

    如要進一步瞭解安裝 MySQL 的相關資訊,請參閱 MySQL 參考手冊安裝及升級 MySQL

  5. 用 mysql 用戶端連線。
    mysql --host=[CLOUD_SQL_PUBLIC_IP_ADDR] --user=root --password
    

    如需使用 SSL 連線的範例,請參閱使用 SSL 連線一文。

  6. 您應會看見 mysql 提示。
  7. 如果您要連線到第一代執行個體,而且必須讓未使用的連線保持運作,請設定 TCP Keepalive

    詳情請參閱 Compute Engine 說明文件中的執行個體與網際網路之間的通訊

    連線會自動針對第二代執行個體保持運作。

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

使用 Cloud SQL Proxy 連線

  1. 啟用Cloud SQL Admin API。

    啟用 API

  2. 為 Proxy 建立服務帳戶。
    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] (建立)

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

  3. 如果 Compute Engine 執行個體的所在位置位於與 Cloud SQL 執行個體不同的專案中,請確保其服務帳戶在包含 Cloud SQL 執行個體的專案中具有適當的權限:
    1. 前往 Google Cloud Platform 主控台的 Compute Engine 執行個體清單。

      前往 Compute Engine 執行個體清單

    2. 必要時,選取與 Compute Engine 執行個體相關聯的專案。
    3. 選取 Compute Engine 執行個體以顯示其屬性。
    4. 在 Compute Engine 執行個體屬性中,複製服務帳戶的名稱。
    5. 前往 Google Cloud Platform 主控台的「IAM 與管理員專案」頁面。

      前往「IAM & Admin Projects」(IAM 與管理員) 的專案頁面

    6. 選取包含 Cloud SQL 執行個體的專案。
    7. 搜尋服務帳戶名稱。
    8. 如果服務帳戶已經存在,且擁有包含 cloudsql.instances.connect 權限的角色,您就可以繼續執行步驟 4

      與舊版 EditorOwner 專案角色一樣,Cloud SQL ClientCloud SQL EditorCloud SQL Admin 角色均會提供必要權限。

    9. 如果沒有服務帳戶,請按一下 [Add] (新增)來新增服務帳戶。
    10. 在「Add members」(新增成員) 對話方塊中,輸入服務帳戶的名稱,然後選取含有 cloudsql.instances.connect 權限的角色 (除了「檢視者」外,任何 Cloud SQL 預先定義的角色皆可)。

      或者,您可以選取 [專案] > [編輯者] 來使用原始編輯者角色,不過編輯者角色包含 Google Cloud Platform 中的各種權限。

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

    11. 按一下 [新增]。

      您現在應該可以看見以指定角色列出的服務帳戶。

  4. 開啟與 Compute Engine 執行個體的終端機連線。

    請根據執行個體的作業系統參考適當的指示:

  5. 如果 Compute Engine 執行個體正在執行 RHEL 或 CentOS 公開映像檔,SELinux 可能會封鎖 Proxy 連線。發生這種情況時,您必須設定 SELinux 功能以允許連線。

    如要進一步瞭解 RHEL 適用的 SELinux,請參閱 RHEL 說明文件。 如要進一步瞭解 CentOS 適用的 SELinux,請參閱 CentOS 說明文件

  6. 若尚未在 Compute Engine 執行個體上安裝 mysql 用戶端,請在 Compute Engine 執行個體上安裝 mysql 用戶端。

    Debian/Ubuntu

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

    sudo apt-get update
    sudo apt-get install mysql-client
    

    CentOS/RHEL

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

    sudo yum install mysql
    

    openSUSE

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

    sudo zypper install mysql-client
    

    其他平台

    1. MySQL Community Server 下載頁面為您的平台下載 MySQL Community Server。
      Community Server 包含 MySQL 用戶端。
    2. 依照下載頁面上的指示安裝 Community Server。

    如要進一步瞭解安裝 MySQL 的相關資訊,請參閱 MySQL 參考手冊安裝及升級 MySQL

  7. 在 Compute Engine 執行個體上安裝 Cloud SQL 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
      

    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

  8. 啟動 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:3306
        
        不能指定使用中的通訊埠,例如本機資料庫伺服器正在使用的通訊埠。
      • 使用服務帳戶並明確指定執行個體 (建議用於實際工作環境):
        ./cloud_sql_proxy -instances=<INSTANCE_CONNECTION_NAME>=tcp:3306 \
                          -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 的選項指定執行個體的選項

  9. 啟動 mysql 工作階段。

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

    TCP 通訊端

    1. 啟動 mysql 用戶端:
      mysql -u <USERNAME> -p --host 127.0.0.1
      

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

    2. 輸入密碼。
    3. 您應會看見 mysql 提示。

    Unix 通訊端

    1. 啟動 mysql 用戶端:
      mysql -u <USERNAME> -p -S /cloudsql/<INSTANCE_CONNECTION_NAME>
      
    2. 輸入密碼。
    3. 您應會看見 mysql 提示。

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

後續步驟

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

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

這個網頁
MySQL 適用的 Cloud SQL