Azure MySQL Database 中的「限制」- 彈性伺服器
適用於:適用於 MySQL 的 Azure 資料庫 - 彈性伺服器
本文說明適用於 MySQL 的 Azure 資料庫彈性伺服器中的限制。 MySQL 資料庫引擎中的一般限制也適用。 如果您想要了解資源 (計算、記憶體、儲存體) 層,請參閱計算和儲存體一文。
伺服器參數
注意
- 如果您要尋找伺服器參數 (例
max_connections
和innodb_buffer_pool_size
自次) 的最小值/最大值,此資訊已移至伺服器參數一文。 - 在適用於 MySQL 的 Azure 資料庫彈性伺服器中,lower_case_table_names 值只能設定為 1。
適用於 MySQL 的 Azure 資料庫彈性伺服器支援調整伺服器參數的值。 某些參數的最小值和最大值 (例如 max_connections
、join_buffer_size
、query_cache_size
) 會由計算層在您計算伺服器大小前決定。 如需這些限制的詳細資訊,請參閱伺服器參數。
產生的隱藏主索引鍵
針對 MySQL 8.0 版和更新版本,預設會針對所有 適用於 MySQL 的 Azure 資料庫 彈性伺服器實例啟用產生的不可見主鍵 (GIPK)。 MySQL 8.0+ 伺服器會在資料表中新增隱藏的資料行 my_row_id 並在該資料行上新增主索引鍵,且在建立 InnoDB 資料表時不會有明確的主索引鍵。 基於這個理由,除非資料表建立陳述式也指定明確的主索引鍵,否則您無法建立有名為 my_row_id 之資料行的資料表。 深入了解。 根據預設,GIPK 會顯示在 SHOW CREATE TABLE、SHOW COLUMNS 和 SHOW INDEX 的輸出中,而且可在資訊結構描述的 COLUMNS 和 STATISTICS 資料表中看到。 若要深入了解 GIPK 及其在適用於 MySQL 的 Azure 資料庫中的資料輸入複寫使用案例,請參閱 GIPK 與資料輸入複寫。
用來停用 GIPK 的步驟
您可以藉由遵循如何從 Azure 入口網站更新任何伺服器參數所提到的步驟,或藉由使用 Azure CLI,將伺服器參數 sql_generate_invisible_primary_key 的值更新為「OFF」。
或者,您也可以連線到適用於 MySQL 的 Azure 資料庫彈性伺服器執行個體,然後執行下列命令。
mysql> SET sql_generate_invisible_primary_key=OFF;
lower_case_table_names
在適用於 MySQL 的 Azure 資料庫彈性伺服器中,MySQL 5.7 版的 lower_case_table_names
預設值為 1。 如果您需要調整此設定,建議您連絡支援小組以取得指導。 請務必了解,一旦參數值變更為 2,就不能再從 2 回復為 1。
請注意,若為 MySQL 8.0 版,則禁止在伺服器初始化之後變更 lower_case_table_names 設定。 深入了解。 在適用於 MySQL 的 Azure 資料庫彈性伺服器 8.0 版中,lower_case_table_names
的預設值為 1。 如果您想要將此參數修改為 2,建議您建立 MySQL 5.7 伺服器,並連絡支援小組以取得變更方面的協助,之後如有需要,您可以將伺服器升級至 8.0 版。
儲存引擎
MySQL 支援許多儲存引擎。 在適用於 MySQL 的 Azure 資料庫彈性伺服器上,下列為支援和不支援的儲存引擎清單:
支援
不支援
權限和資料操作支援
許多伺服器參數與設定可能會在無意中造成伺服器效能降級,或是否定 MySQL 伺服器的 ACID 屬性。 此服務不會公開多個角色,以維護產品層級的服務完整性與 SLA。
MySQL 服務不允許直接存取基礎檔案系統。 不支援某些資料操作命令。
不支援
不支援下列項目:
- DBA 角色:受限。 或者,您可以使用管理員使用者 (在建立新伺服器時建立),執行大部分的 DDL 和 DML 陳述式。
- 以下靜態權限受到限制。
- BACKUP_ADMIN 權限:使用任何公用程式工具取得備份時,不支援授與 BACKUP_ADMIN 權限。 如需支援的動態權限清單,請參閱支援一節。
- DEFINER:需要進階的權限才能建立,而且受限制。 如果使用備份匯入資料,在執行 mysqldump 時請以手動方式移除
CREATE DEFINER
命令或使用--skip-definer
命令。 - 系統資料庫:mysql 系統資料庫為唯讀狀態,並用來支援各種 PaaS 功能。 您無法對
mysql
系統資料庫進行變更。 SELECT ... INTO OUTFILE
:服務中不支援。
支援
- 支援
LOAD DATA INFILE
,但必須指定[LOCAL]
參數並導向至 UNC 路徑 (透過 SMB 掛接的 Azure 儲存體)。 此外,如果您使用 MySQL 用戶端版本>= 8.0,則需要在連接字串中包含-–local-infile=1
參數。 - 針對 MySQL 8.0 版和更新版本,僅支援以下所述的動態權限。
功能限制
區域備援 HA
- 此設定只能在伺服器建立期間設定。
- 不支援可高載計算階層。
網路
- 建立伺服器後,就無法變更連線方法。 如果伺服器是以 私人存取 (虛擬網路整合) 建立,則無法在建立之後變更為公用存取 (允許的 IP 位址),反之亦然
停止/啟動作業
- 不支援讀取複本設定 (來源和複本)。
調整作業
- 不支援減少已佈建伺服器儲存體。
伺服器版本升級
- 目前不支援在主要資料庫引擎版本間進行自動轉換。 如果您想要升級主要版本,請傾印和還原至使用新引擎版本所建立的伺服器。
還原伺服器
- 使用時間點還原功能時,新伺服器會使用與其所依據來源伺服器相同的計算和儲存體設定來建立。 建立伺服器後,可以縮小新還原伺服器的計算。
功能比較
可在適用於 MySQL 的 Azure 資料庫單一伺服器中使用的功能,並非全都可在適用於 MySQL 的 Azure 資料庫彈性伺服器中使用。
如需適用於 MySQL 的 Azure 資料庫單一伺服器與適用於 MySQL 的 Azure 資料庫彈性伺服器之間的功能比較完整清單,請參閱在 Azure 中選擇正確的 MySQL Server 選項。