MySQL 適用的 Cloud SQL 功能

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

各 Cloud SQL 版本的 MySQL 功能

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

Cloud SQL 支援的一般 MySQL 功能

  • 雲端上全代管的 MySQL Community Edition 資料庫。
  • 執行個體提供區域包含美洲、歐盟、亞洲及澳洲。請參閱所有可建立 Cloud SQL 執行個體的地區
  • 支援使用資料庫移轉服務 (DMS),從來源資料庫遷移至 Cloud SQL 目的地資料庫。
  • Google 內部網路及資料庫資料表、暫存檔案和備份中的客戶資料均會經過加密。
  • 支援使用 Cloud SQL Auth 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。支援私人服務存取權。詳情請參閱各項服務的私人存取權選項

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

由於 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 5.6 和 5.7 適用的 Cloud SQL 不支援下列功能:

  • SUPER 權限

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

MySQL 8.4 適用的 Cloud SQL 不支援下列功能:

  • 已加上標記的 GTID。如要進一步瞭解已加上標記的 GTID,請參閱 MySQL 8.4 版本資訊的「MySQL Replication: tagged GTIDs」(MySQL 複製:已加上標記的 GTID) 一節,網址為 Features Added or Changed in MySQL 8.4

此外,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 陳述式不支援 MySQL 5.6 和 5.7 適用的 Cloud SQL,但支援 MySQL 8.0 適用的 Cloud SQL:

  • 交易內的 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 說明文件中的「Converting table to InnoDB」(將資料表轉換為 InnoDB)。

MySQL 適用的 Cloud SQL 預設選項

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 說明文件中的「Caching SHA-2 Pluggable Authentication」。

MySQL 8.4 驗證外掛程式預設值

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

在 MySQL 8.4 適用的 Cloud SQL 中,mysql_native_password驗證外掛程式已淘汰。如果嘗試使用已淘汰的 mysql_native_password 驗證外掛程式建立新使用者帳戶,系統會顯示錯誤訊息。您無法在 MySQL 8.4 適用的 Cloud SQL 中,將帳戶的 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 中變更的系統標記」。

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

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