MySQL 適用的 Cloud SQL 功能

本頁面說明 MySQL 適用的 Cloud SQL 主要功能與服務。Cloud SQL 也適用於 PostgreSQLSQL Server

各 Cloud SQL 版本的 MySQL 功能

如要進一步瞭解 Cloud SQL 適用於 MySQL 的 Cloud SQL Enterprise Plus 版本和 Cloud SQL Enterprise 版本的功能,請參閱「Cloud SQL 版本簡介」。

Cloud SQL 支援的一般 MySQL 功能

  • 雲端上全代管的 MySQL Community Edition 資料庫。
  • 執行個體提供區域包含美洲、歐盟、亞洲和澳洲。請參閱可建立 Cloud SQL 執行個體的所有位置
  • 支援使用資料庫移轉服務 (DMS) 從來源資料庫遷移至 Cloud SQL 目的地資料庫。
  • Google 內部網路及資料庫資料表、暫存檔案和備份中的客戶資料均會經過加密。
  • 支援使用 Cloud SQL 驗證 Proxy 或 SSL/TLS 通訊協定建立安全的外部連線。
  • 支援私密 IP (私人服務存取權)。
  • 使用自動容錯移轉功能,在多個區域之間複製資料。
  • 使用 mysqldump 匯入及匯出資料庫,或匯入及匯出 CSV 檔案。
  • 支援 MySQL 有線通訊協定及標準 MySQL 連接器。
  • 自動備份、隨選備份和時間點復原。
  • 執行個體複製功能。
  • 與 Google Cloud Observability 記錄和監控功能整合。
  • 符合 ISO/IEC 27001 標準。

MySQL 適用的 Cloud SQL 支援的應用程式語言

您可以將 Cloud SQL 與在彈性環境中執行的 App Engine 應用程式搭配使用,這些應用程式是以以下語言編寫:

  • C#
  • Go
  • Java
  • Node.js
  • PHP
  • Python
  • Ruby

您也可以將 Cloud SQL 與使用標準 MySQL 通訊協定的外部應用程式搭配使用。

如何連線至 MySQL 適用的 Cloud SQL 執行個體

您可以透過下列方式連線至 Cloud SQL 執行個體:

不支援使用私人 Google 存取權連線至 Cloud SQL。支援私人服務存取權。詳情請參閱「各項服務的私人存取權選項」。

Cloud SQL for MySQL 8.0 中的使用者管理

由於 MySQL 8.0 的變更,您無法使用 CREATEDELETE 陳述式管理 MySQL 使用者。您也無法使用 INSERTUPDATEDELETE 陳述式修改使用者權限。請改用 CREATE USERDROP USERGRANTREVOKE 陳述式修改使用者權限。詳情請參閱帳戶管理注意事項

注意:請忽略「帳戶管理」備註中有關執行 mysql_upgrade 以升級至 8.0 版的資訊。請改用「在執行個體上升級 MySQL」一文中的程序進行升級。

標準 MySQL 與 MySQL 適用的 Cloud SQL 之間的差異

一般來說,Cloud SQL 執行個體提供的 MySQL 功能與本機託管的 MySQL 執行個體提供的功能相同。不過,標準 MySQL 執行個體和 Cloud SQL 執行個體之間還是有些差異。

Cloud SQL 不支援的 MySQL 功能

以下功能不支援 MySQL 適用的 Cloud SQL 5.6 和 5.7:

  • SUPER 權限

以下功能不支援 MySQL 適用的 Cloud SQL 8.0:

以下功能不支援 Cloud SQL for MySQL 8.4:

  • 標記的 GTID。如要進一步瞭解標記 GTID,請參閱 MySQL 8.4 版本資訊中的「MySQL 8.4 新增或變更的功能」一節,瞭解「MySQL 複製作業:標記 GTID」的相關資訊。

此外,MySQL 適用的 Cloud SQL 不會授予 MySQL 8.4 中引進的下列權限:

Cloud SQL 不支援的 MySQL 外掛程式

Cloud SQL 不支援的 MySQL 陳述式

下列 SQL 陳述式會產生錯誤,並顯示 Error 1290: The MySQL server is running with the Google option so it cannot execute this statement 訊息:

  • LOAD DATA INFILE

  • SELECT ... INTO OUTFILE

  • SELECT ... INTO DUMPFILE

  • INSTALL PLUGIN ...

  • UNINSTALL PLUGIN

  • CREATE FUNCTION ... SONAME ...

由於 MySQL 執行個體使用 GTID 複製功能,因此不支援下列陳述式:

  • CREATE TABLE ... SELECT 個陳述式
  • 更新交易型和非交易型資料表的交易或陳述式

下列 MySQL 陳述式不支援 Cloud SQL for MySQL 5.6 和 5.7,但支援 Cloud SQL for MySQL 8.0:

  • 交易內的 CREATE TEMPORARY TABLE 陳述式

詳情請參閱 MySQL 說明文件

Cloud SQL 不支援的 MySQL 函式

  • LOAD_FILE()

Cloud SQL 不支援的 MySQL 用戶端程式功能

  • mysqldump 使用 --tab 選項或與 --tab 搭配使用的選項。這是因為執行個體使用者未取得 FILE 權限。支援所有其他 mysqldump 選項。如要瞭解如何使用 mysqldump 選項,以便將檔案最佳化,以便匯入至 Cloud SQL,請參閱「使用 mysqldump 從本機 MySQL 伺服器匯出資料」。

  • mysqlimport 不使用 --local 選項。這是因為 LOAD DATA INFILE 的限制。如要將資料匯入 Cloud SQL 執行個體,請參閱使用傾印檔案匯入資料使用 CSV 檔案匯入資料

  • 如果您要將含有二進位資料的資料庫匯入 Cloud SQL 執行個體,必須使用 --hex-blob 選項搭配 mysqldump

    使用本機 MySQL 伺服器執行個體和 mysql 用戶端時,hex-blob 並非為必要標記,但如果您要將任何含有二進位資料的資料庫匯入 Cloud SQL 執行個體,則必須使用該標記。如要將資料匯入 Cloud SQL 執行個體,請參閱使用傾印檔案匯入資料使用 CSV 檔案匯入資料

  • 並非所有 MySQL 選項和參數都可以做為 Cloud SQL 標記啟用編輯。

    如要要求加入可設定的 Cloud SQL 標記,請使用 Cloud SQL 討論群組

  • InnoDB 是唯一支援的儲存引擎。如需將資料表從 MyISAM 轉換成 InnoDB 的說明,請參閱 MySQL 說明文件中的「將資料表轉換為 InnoDB」。

Cloud SQL 的 MySQL 預設選項

Cloud SQL 會使用一組特定選項來執行 MySQL。因為選項可能會影響應用程式的運作方式,所以在此加註供您參考。

skip-name-resolve

這項旗標會影響用戶端連線的主機名稱解析方式。請參閱 MySQL 說明文件中的 skip-name-resolve

log_bin

這個標記會回報二進位檔記錄功能是否已啟用。如果使用 --log-bin 選項,則這個變數的值為 ON;否則為 OFF。請參閱 MySQL 說明文件中的 log_bin

MySQL 驗證

本節說明 MySQL 內建驗證的變更內容。

MySQL 8.0 驗證外掛程式預設值

MySQL 適用的 Cloud SQL 8.0 會使用 mysql_native_password 做為新使用者的預設驗證外掛程式,而非 caching_sha2_passwordmysql_native_password 外掛程式是 MySQL 5.6 和 5.7 使用者的預設外掛程式。

如果您希望新使用者使用 caching_sha2_password 外掛程式做為預設驗證機制,可以設定 default_authentication_plugin 的執行個體標記,以便使用 caching_sha2_password

如要設定現有使用者使用 caching_sha2_password,請使用 ALTER USER 指令變更驗證外掛程式。

已完成 caching_sha2_password 驗證的使用者可能需要在連線時使用 get-server-public-key 旗標。詳情請參閱 MySQL 說明文件中的「快取 SHA-2 可插入式驗證」。

MySQL 8.4 驗證外掛程式預設值

從 MySQL 適用的 Cloud SQL 8.4 開始,caching_sha2_password 外掛程式是預設的驗證外掛程式。您建立的所有內部使用者和新使用者帳戶都會使用 caching_sha2_password 外掛程式進行驗證。Cloud SQL for MySQL 8.4 會繼續支援使用 mysql_native_password 外掛程式的現有 Cloud SQL 使用者帳戶。這些現有帳戶在 MySQL 8.4 升級後,仍可繼續連線至 MySQL 適用的 Cloud SQL 執行個體。

在 MySQL 適用的 Cloud SQL 8.4 中,mysql_native_password 驗證外掛程式已淘汰。若嘗試使用已淘汰的 mysql_native_password 驗證外掛程式建立新使用者帳戶,會導致錯誤。您無法在 Cloud SQL for MySQL 8.4 中設定帳戶的 authentication_policy 來使用 mysql_native_password

如要將現有的資料庫使用者帳戶變更為使用 caching_sha2_password 驗證外掛程式,請使用下列指令:

ALTER USER 'username'@'%'
IDENTIFIED WITH caching_sha2_password BY 'user_password';

usernameuser_password 替換為要更新的使用者帳戶值。

如要進一步瞭解這項變更對伺服器、用戶端和連接器之間的相容性帶來的影響,請參閱 caching_sha2_password as the Preferred Authentication Plugin

Cloud SQL 中 MySQL 系統標記的變更

對於某些 MySQL 系統旗標,Cloud SQL 會使用與預設值不同的值。您無法變更這些旗標的值。如需標記清單,請參閱「Cloud SQL 中變更的系統標記」。

Cloud SQL 功能不支援 MySQL 適用的 Cloud SQL 8.0 以上版本

MySQL 適用的 Cloud SQL 8.0 以上版本不支援使用容錯移轉備用資源的舊版 MySQL 適用的 Cloud SQL 高可用性 (HA) 設定。MySQL 適用的 Cloud SQL 8.0 以上版本僅支援區域HA 設定