各 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 執行個體:
- A
mysql
client - 第三方工具,例如 SQL Workbench 或 Toad for MySQL
- 外部應用程式
- App Engine 應用程式
- 在 Compute Engine 上執行的應用程式
- 在 Google Kubernetes Engine 上執行的應用程式
- Cloud Run functions
- Cloud Run
- Google Apps Script 指令碼
系統不支援使用私人 Google 存取權連線至 Cloud SQL。支援私人服務存取權。詳情請參閱各項服務的私人存取權選項。
MySQL 8.0 適用的 Cloud SQL 中的使用者管理
由於 MySQL 8.0 的變更,您無法使用 CREATE
或 DELETE
陳述式管理 MySQL 使用者。您也無法使用 INSERT
、UPDATE
或 DELETE
陳述式修改使用者權限。請改用 CREATE USER
、DROP USER
、GRANT
和 REVOKE
陳述式修改使用者權限。詳情請參閱帳戶管理注意事項。
注意:請忽略「帳戶管理注意事項」中,關於執行
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 不支援下列功能:
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_password
。mysql_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';
將 username 和 user_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 僅支援區域高可用性設定。